Share code between testChangeTrackerBackoffInvalidJson() and testChangeTrackerBackoffExceptions()
fix NullPointerException in Document.getRevision()

If you try to get a specific revision using Document.getRevision, but
the current revision has never been retrieved (and so currentRevision is
null), a NullPointerException is thrown.
Write test case to try to repro issue #165.  Found bugs in both the Database.delete() and the Manager.getExistingDatabase() methods.

https://github.com/couchbase/couchbase-lite-android/issues/165
When deleting a db, it needs to remove it from the manager's list of cached dbs.

https://github.com/couchbase/couchbase-lite-android/issues/165
When deleting a db, it needs to remove it from the manager's list of cached dbs.

Also getExistingDatabase() was passing wrong value for mustExist flag.
https://github.com/couchbase/couchbase-lite-android/issues/165
synchronize access to Database's changeListeners list

Iteration over the changeListeners in Database.notifyChange can throw a
ConcurrentModificationException if addChangeListener or
removeChangeListener is called from another thread.