Add g(to/from)JsonWithSettings that allows specifying settings for generated instances, currently only to strip custom prefixes
Fix warnings
Change data C = A (Maybe B), it used to produce an object with an empty string property for the Maybe, this object is now stripped
Fix inconsistent and buggy behavior of Maybe values, fixes #2, fixes #3.

Also changes the serialization format of non-record constructors with one Maybe field.
The format was never specified or tested and would result in `C (Just x)` being serialized to {"c":{"":x}}`, now it instead serializes to `{"c":x}`.