Fix attempt for testLiveQueryStop() failure on Jenkins machine.

Go out on a limb here and make a pretty major divergence from the iOS implementation.  The iOS implementation depends on the behavior of the runloop (see google group link below), which doesn't translate exactly into java code, or I'm just not seeing how that translation would work.

LiveQuery will now ignore update() requests if there is a current query in progress.  However, it will schedule a call to update() in order to catch up on any new docs that were added while the current query in progress was running.

Also, a running state variable is kept, and async callbacks are ignored if the running state is false.

Calling stop() should cause it to no longer callback any listeners and cancel all pending queries (and there is a unit test for this).

Ref: https://groups.google.com/forum/#!msg/mobile-couchbase/hsyiiRhUc3s/mN8FjnbSPk0J

Ref: com.couchbase.lite.ApiTest > testLiveQueryStop[cblite(AVD) - 4.2.2] [31mFAILED [0m
	junit.framework.AssertionFailedError: expected:<1> but was:<2>
	at com.couchbase.lite.ApiTest.testLiveQueryStop(ApiTest.java:804)