Add MutableDocumentRevision and associated new Datastore methods:

* createDocumentFromRevision(MutableDocumentRevision rev)
* updateDocumentFromRevision(MutableDocumentRevision rev)
* deleteDocumentFromRevision(DocumentRevision rev)
* deleteDocument(String id)

Also update documentation including README.md and doc/crud.md
Allow mutable documents to be returned from ConflictResolver:

- This required a refactor of the DocumentRevision class hierarchy:

  - DocumentRevision becomes minimal parent interface of
    BasicDocumentRevision and MutableDocumentRevision

  - Almost all existing usages of DocumentRevision change to
    BasicDocumentRevision

- Also ensure that attachments are correctly set for the new winning
  revision

Also fix transactionality of attachment handling:

New prepareAttachments method makes it easier to prepare attachments
and split out prepared and already-saved attachments, before starting
a transaction and committing them to the database.
Fix tense of documentation:
"If the document was" -> "If the document is"
Merge pull request #35 from cloudant/33239-mutable-document-revision

Add MutableDocumentRevision and associated new APIs.

Also allow ConflictResolver to return MutableDocumentRevision as well as existing DocumentRevisions.
Fix bug where default constructor wasn't public
Preparing for 0.7.1 release
Bump version number after release
Run tests on android

Created an new project within sync-android which is a application designed to run JUnit 4 tests, with all the benefits. The test application has several
flavours which can be used to test sync-android, standardTest, performanceTest, integrationTest, systemTest. These flavours represent test types which can be
performed using the gradle tasks in sync-core. The test application requires fixtures to be uploaded using the uploadFixtures task, this is a dependancy of startTestApp.
waitForTestAppToFinishTests task has a depdancy on startTestApp, and will ask the device/emulator ( at approx 1 minute intervals ) if a test results file is present
on the sdcard ( /sdcard ), when the file is dectected and downlaoded, the task will finish executing.

Fixture loading has been changed. Fixtures now need to be loaded via TestUtils.loadFixture(Sting filename) method. This method will create a file object that points
to the correct place on disk. For android this is in the sdcard dir, for java se it is in the working directory for the JVM.

BuildConfig class is used to pass in the test classes to run, and specifiy which classes should be excluded using JUnit categories.
Merge pull request #37 from cloudant/run_tests_on_android

Run tests on android
Adds test to check for correct replicator state when prematurely stopping replication.