Add snapshot replication to ReplicateRepository
When ReplicateRepository detects that the target repository location is empty or is not a valid git repository, it will do an initial repository creation with a snapshot from the source.
fixes: #2197 (closed)