Shortened wait timeouts, fixed test deadlock, add Cursor locks.
Misc cleanup.
Added a missing null check.
Make TestRunReplicationWithError and TestGetReplicator pass

- Use MockHttpClientFactory in TestRunReplicationWithError
- Fix TestGetReplicator by adding sleep for one second to wait for all statuses to get updated after calling replicator.Stop() method
- Fix Replicator not calling complete handler when the task gets cancelled which causes AsyncTaskCount not getting updated.
- Fix AsyncTaskStarted() method that UpdateActive() not getting called.
Added ToString override for better debugging.
Cleanup to Manager, Sqlite Storage Engine.

Allow users to provide a scheduler to use for invoking callbacks. Otherwise, the current synch context's scheduler is used. This is now configured via ManagerOptions.CallbackScheduler.

SqlitePclRawStorageEngine was swallowing exceptions, and these are now rethrown after logging them. As a result, Compact no longer works, as VACUUM now throws an exception.”
Removes remnant from old iOS binding.
Fixes #87

Ensure that BuildCommand uses the correct prepare
statement. Also fixes one hanging statement that
wasn't closed.
Unit tests now pass on Android > Release builds.
Merge pull request #79 from couchbaselabs/replicationtest-testremoteconflictresolution

Shortened wait timeouts, fixed test deadlock, add Cursor locks, misc cleanup