Document public API
Split logic of IObjectReplicator and introduce additional entity - IReplicationStrategyFactory

// tests are failing
Introduce IReplicationContext to make replicator able to cope with circular references (and use it).

// tests are failing
test fixed
Implement ReplicationContext + tests
Return back ObjectReplicator + namespace rename