Don't attempt to call db.setLastSequence if db closed

Added in reaction to seeing errors in logs: java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/data/com.couchbase.lite.test/files/test/cblite-test.cblite
Don't call pendingSequences.first() if empty

Added in reaction to java.util.NoSuchElementException
Fixes #295 by checking if the db is null before calling forgetReplication.

https://github.com/couchbase/couchbase-lite-android/issues/295
fix NPE when calling Manager.getDatabase concurrently

Calling Manager.getDatabase() concurrently can lead to:

java.lang.NullPointerException
            at com.couchbase.lite.android.AndroidSQLiteStorageEngine.execSQL(AndroidSQLiteStorageEngine.java:95)
            at com.couchbase.lite.Database.initialize(Database.java:888)
            at com.couchbase.lite.Database.open(Database.java:918)
            at com.couchbase.lite.Manager.getDatabase(Manager.java:229)

This can be resolved by synchronizing
- Manager.getDatabaseWithoutOpening(), and
- Database.open().

The first ensures that both calls to getDatabase() get the same Database
object back, and the second ensures that a Database is only opened once.
Merge pull request #195 from mjq/get_database_crash

Fix NPE when calling Manager.getDatabase concurrently