testHeaders() passes

https://github.com/couchbase/couchbase-lite-android/issues/398
change the way RemoteRequest retries are handled.

Keeps existing future open and sleeps rather than scheduling a new task.

testPushReplicationNonRecoverableError() passes

https://github.com/couchbase/couchbase-lite-android/issues/398
clear error when retrying remote requests.

testPushReplicationRecoverableIOException() passes

https://github.com/couchbase/couchbase-lite-android/issues/398