Indent blocks in decode method, to ease development of enum support.
Support enum subtypes by serializing enums implementing an interface with a complex object containing the class name and the value. Issue #164