java serializer / deserializer for json with support for defaulting and references