Complete issue #71 and #181

- Make ChangeTracker support POST requests

- Puller’s ChangeTracker uses POST requests when sync gateway version
    is 0.93+
Fixed 3 Replication tests.

Fixed TestAllLeafRevisionsArePushed, TestHeaders, and TestPusherDeletedDoc.

Some key exceptions were getting swallowed,
which prevented TestHeaders from firing
the Changes callback.

Removed the early instantiation of the shared
instance of Manager, which is only used in
the Android simple demo.

Also removed some opportunities for the TaskScheduler to deadlock.
Fixed additional tests.

Allowed broader use of inlining in the TaskScheduler,
and resolved a dispose issue in the MockHttpClientFactory
that lead to a deadlock.

Fixes TestRemoteConflictResolution and TestPuller.
Merge pull request #238 from couchbaselabs/issue-181

Complete issue #71 and #181
Complete issue #223

- Port fix for not uploading previous revision attachment
- Port Database.StubOutAttachmentsInRevBeforeRevPos()
- As part of the port, Replication.revisionBodyTransformationFunction
and propertiesTransformationFunction are included but not used as they
are not part of v1.0.0 release. A note regarding this has been added to
the code as well.
- Fix Pusher.UploadMultipartRevision — SyncGateway doesn’t like
MultipartForm content so changing it to multipart/related is needed.
- Fix Database.StubOutAttachmentsInRevision() to make it working
correctly.
- Add ReplicationTest.TestPusherFindCommonAncestor() and
DatabaseTest.TestStubOutAttachmentsInRevBeforeRevPos()
- Remove unused Database.LastSequenceWithRemoteURL()
Fix Replication and Pusher bug

- Fix SendAsyncRequest checking error code bug. We cannot only check
for HttpStatusCode.OK (eg. HttpStatusCode.Created is also valid).
- Fix Pusher.ProcessInbox bug when preparing docs for UploadBulkDocs()
- Minor enhance log messages
Fixes several tests.

Fixes TestPusher, TestPushReplicationCanMissDocs,
and TestPutLargeAttachments.
Remove noop attribute.
Merge conflict resolution.