Squashed commit for the two tickets listed

https://github.com/couchbase/couchbase-lite-android/issues/397
https://github.com/couchbase/couchbase-lite-android/issues/398
Fixes 409 Error on PUT checkpoint issue

https://github.com/couchbase/couchbase-lite-java-core/issues/250
Fixes #283 by using a blocking queue

Replace the LinkedHashSet with a blocking queue.

Tests pass on genymotion emulator and nexus 5.

https://github.com/couchbase/couchbase-lite-java-core/issues/283
Change log from error to debug
Merge branch 'feature/issue_249_restart_replications'
Fix minor logging issues
Make setting the logger level actually work

Right now when we set the log level via the Couchbase logger it will (in Java anyway) bottom out into the the SystemLogger class. But the logger object in this class has its own logging level independent of the one we set in Couchbase and that level by default is 'info'. So it doesn't matter if you set the Couchbase logging level lower, logger won't let it through. The fix is to just set the logger's level to ALL and just depend on Couchbase's logger to handle filtering.
Fixes #289

https://github.com/couchbase/couchbase-lite-java-core/issues/289
Merge remote-tracking branch 'upstream/master' into issue39

Conflicts:
	src/main/java/com/couchbase/lite/replicator/ChangeTracker.java
	src/main/java/com/couchbase/lite/replicator/PullerInternal.java