This restructuring greatly cleans up the code and reduces some complexity; however, there is more that can be done to clean this up (i.e. get rid of "InstanceCreators" for primitive Type Adapters).
This helps is handling cases where the user is using their own subclass of Collection or Map.
Updated ParameterizedTypeHandlerMap to return the handler corresponding to Map and Collection for subclasses if user has not specified a specific handler.
Fixed the logic in JsonTreeNavigator to not output a comma if the first field of an object was null.