Update replaceDatabase to match API spec
Bring validator stuff up to API spec.  Some methods still stubbed out.
Finish bringing validator stuff up to API spec.  Implement stubbed out methods.
changes and fixes in ApiTest.java
add regression test for the case where we had a "recursive data structure" in the attachment properties
fix attachment dictionary recursively
Use "test_attachment" instead of "attach" for test attachment name, since was confusing.  Also put test attachment name in a constant.
Add testLiveQuery() which uses a LiveQuery in the usual manner.  Currently fails due to apparent bug in code.

I didn't understand how the iOS TestCase(API_LiveQuery) works after glancing at it (maybe I should talk to Jens to try to figure it out), so for now I created a whole new testLiveQuery() which is the "normal" way to use a live query.  Left failingiOSPortTestLiveQuery() in for now, disabled.  Need to figure out if it's a valid test, and if so, re-enable it.
Add comments to further explain test, change timeout to 1 second.
Add comments to tetLiveQuery to explain how it works
Fix LiveQuery, which was completely broken due to name collision with param and instance variable (*facepalm*).  This breakage was demonstrated by testLiveQuery(), a basic test that was failing before this fix.
minor improvement in RevisionInternal.getPropertyForKey
fix updateIndex when value is null in emitBlock
fix testChangeTracking
testLiveQuery() was failing using Arm emulator (even though passing with Genymotion emulator).  Increase doneSignal timeout to 30 seconds, which will allow it to work on ARM emulator but not slow it down for Genymotion emulator.
rework testAsyncViewQuery() so that it uses a CountdownLatch rather than Thread.sleep(), so this test runs much faster.
initial ReplicationAPITest version
minor fixes in testCreateNewRevisions
Change to match the iOS code.  Not sure if this caused any issues.
modify testLiveQuery() to expose the bug: LiveQuery.run() should call start() but it is not doing it.