boot: Change TLV tag to 16 bits

The current TLV tag is an unsigned 8-bit integer, that is stored with 8
bits of padding.  As the TLV tag is defined to be little endian
(although the code doesn't properly handle this), we can use the 8 bits
of padding as the upper 8-bits, treating the TLV tag as a 16 bit value,
and all existing tags will operate as they did before.

Change the types used throughout the code to represent the TLV to a
`uint16_t`.  Change the ANY tag type to `0xffff` instead of `0xff`.
This value is never stored, but will avoid conflicts with any future
allocated tags.

Signed-off-by: David Brown <david.brown@linaro.org>
diff --git a/boot/bootutil/src/image_validate.c b/boot/bootutil/src/image_validate.c
index 9fbd88f..2fea71d 100644
--- a/boot/bootutil/src/image_validate.c
+++ b/boot/bootutil/src/image_validate.c
@@ -212,7 +212,7 @@
 {
     uint32_t off;
     uint16_t len;
-    uint8_t type;
+    uint16_t type;
     int sha256_valid = 0;
 #ifdef EXPECTED_SIG_TLV
     int valid_signature = 0;
diff --git a/boot/bootutil/src/tlv.c b/boot/bootutil/src/tlv.c
index bf6aebd..1bf1cbf 100644
--- a/boot/bootutil/src/tlv.c
+++ b/boot/bootutil/src/tlv.c
@@ -34,7 +34,7 @@
  */
 int
 bootutil_tlv_iter_begin(struct image_tlv_iter *it, const struct image_header *hdr,
-                        const struct flash_area *fap, uint8_t type, bool prot)
+                        const struct flash_area *fap, uint16_t type, bool prot)
 {
     uint32_t off_;
     struct image_tlv_info info;
@@ -89,7 +89,7 @@
  */
 int
 bootutil_tlv_iter_next(struct image_tlv_iter *it, uint32_t *off, uint16_t *len,
-                       uint8_t *type)
+                       uint16_t *type)
 {
     struct image_tlv tlv;
     int rc;