[Tests] TestPurgeDocument now passes.

Extracted the parameter processing logic from RawSQL to method.
Added a call to that method to ExecSQL.
[Tests] TestLocalDocs now works.
[Tests] TestCreateRevisions now passes.
[Tests] TestCreateNewRevisions now passes
[Tests] TestHistory now works.
[Tests] TestConflict intermittently passes.

The issue is that conflicting revisions have the same
generation number, and randomly generated guids as ids.
The test attempts to choose based on deepest sequence,
but since the generations match, it's randomly choosing
the default revision, instead of taking the highest seq.
Fixed intermittent issue with TestConflict.

Due to a subtle issue in my Cursor implementation,
I had disabled a call to MoveNext in WinningRevIDOfDoc.
This introduced a regression. Fixed the cursor bug,
and restored the call to MoveNext.
[Tests] TestChangeUUID now passes.
[Tests] TestAttachments now passes.
[Tests] TestChangeTracking now passes.
[Tests] TestValidation now passes.
[Tests] TestSharedMapBlocks now passes.
[Tests] TestCreateView now works.

CouchbaseSqliteCollationFunction, the custom Couch* JSON collation function,
handles only very simplistic comparisons. It's not complete.
[Tests] TestViewWithLinkedDocs now passes.
[Tests] Fix fail after successive (single) tests.
[Tests] TestLiveQueryRun and TestLiveQueryStart pass.
[Tests] TestAsyncViewQuery passes.

All ApiTest tests now pass.
[Tests] Added ReplicationTests.

TestBuildRelativeURLString, TestBuildRelativeURLStringWithLeadingSlash, and
TestRunReplicationWithError now pass. The later does not when run by itself.
TestLiveQueryRun, TestLiveQueryStart, and TestPurgeDocument seem to have
regressed. Need follow-up.
[Tests] Additional ReplicationTests debugging.
[Tests] ApiTests all pass again.