BasicMetadataProvider now handles nullable types + has more clear interface
objectReplicator and replication strategies now use metadataProvider