Lots of improvements to utility

- The json key to serialize/deserialize can be specified.
- Type qualifiers can be added to the base type (optional, use JSON_VAR for no qualifiers, JSON_QUALIFIED_VAR for qualifiers)
- No need for the JSON_*VAR macros to specify the class.