Ensure JsonConverter associated with root object $type is used during deserialization.

Fixes #243 

When deserializing an object of unknown type (i.e., `serializer.Deserialize<Object>(jsonWriter);`) and the root object specifies a `$type`, ensure any registered JsonConverter is used for deserialization.

Full description in Issue #243.