Use uint16_t to store key usage field in X.509 CRT

Also, reorder the fields to avoid padding, thereby reducing the size of
mbedtls_x509_crt_frame by 2 Bytes.
diff --git a/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h
index 26f3a62..47b29de 100644
--- a/include/mbedtls/x509_crt.h
+++ b/include/mbedtls/x509_crt.h
@@ -63,13 +63,13 @@
     uint8_t ns_cert_type;                   /**< Optional Netscape certificate type extension value:
                                              *   See the values in x509.h                                       */
 
-    unsigned int key_usage;                 /**< Optional key usage extension value: See the values in x509.h   */
-    uint32_t ext_types;                     /**< Bitfield indicating which extensions are present.
-                                             *   See the values in x509.h.                                      */
-
     mbedtls_md_type_t sig_md;               /**< The hash algorithm used to hash CRT before signing.            */
     mbedtls_pk_type_t sig_pk;               /**< The signature algorithm used to sign the CRT hash.             */
 
+    uint16_t key_usage;                     /**< Optional key usage extension value: See the values in x509.h   */
+    uint32_t ext_types;                     /**< Bitfield indicating which extensions are present.
+                                             *   See the values in x509.h.                                      */
+
     mbedtls_x509_time valid_from;           /**< The start time of certificate validity.                        */
     mbedtls_x509_time valid_to;             /**< The end time of certificate validity.                          */