Move PB_WT_PACKED definition to the header (#671)

Casting integer values outside of the enum range is undefined behavior.
Normally most platforms do allocate at least 8 bits per enum and this
is not known to cause problems so far, but it gave compiler warnings.
diff --git a/pb.h b/pb.h
index 03d476f..488a5fa 100644
--- a/pb.h
+++ b/pb.h
@@ -377,7 +377,8 @@
     PB_WT_VARINT = 0,
     PB_WT_64BIT  = 1,
     PB_WT_STRING = 2,
-    PB_WT_32BIT  = 5
+    PB_WT_32BIT  = 5,
+    PB_WT_PACKED = 255 /* PB_WT_PACKED is internal marker for packed arrays. */
 } pb_wire_type_t;
 
 /* Structure for defining the handling of unknown/extension fields.
diff --git a/pb_decode.c b/pb_decode.c
index b194825..790df75 100644
--- a/pb_decode.c
+++ b/pb_decode.c
@@ -57,8 +57,6 @@
 #define pb_uint64_t uint64_t
 #endif
 
-#define PB_WT_PACKED ((pb_wire_type_t)0xFF)
-
 typedef struct {
     uint32_t bitfield[(PB_MAX_REQUIRED_FIELDS + 31) / 32];
 } pb_fields_seen_t;