Hmm, I see I contradict myself a bunch here, recommending constructors in one place and recommending against them in another.

I think I'd go for a `- (BOOL)validate:(NSError)error` method on CDT*Replication (may need one for pull and one for push, or just one in the abstract class). This can be called in tests, as described in another ticket. Then `oneway` can call the validate method, and if it returns `NO`, the error parameter to `oneway` can be set from the validate error parameter.

It should validate the remote database's URL is valid, possibly not reachable though. As the replicator factory has a reference to the datastore manager, is it able to validate the datastore name too?