(#2029) - read only replication

this allows you to replicate from a readonly db by not crashing if it can't write to the source, it also will allow you to resume replicating from a read only database by using the targets checkpoint if the source does not have the checkpoint and it can't write one to the source.

also adds tests for both cases, though since validate_doc_update doesn't work with local docs we have to mock it.