Record fields are now mutable.
Using ArrayList instead of regular arrays.
Cleanup
Deal with field names that happen to be Java keywords by automatically
appending an underscore if no alternative is provided by a
<java name="..."> annotation.
Fixed code produced for a field that is a list of a custom type.
Indenting JSON output is no longer offered.
Removed the non-essential parts (comparisons, visitor pattern) in order
to make rewrites easier.
No more option type. Record fields of the form '?foo: bar option' are
nullable. We no longer use Java primitive types (int, boolean, ...) but
their object counterpart (Integer, Boolean, ...) so they can be null.
Cleanup
Merge pull request #3 from timeco/mj/changes

Removed unnecessary parts, using nullable types instead of a weird option type.