DB code refactor

up to babbfc6 :
DbHelper, SQLiteDatabase, AccountsDbAdaper, TransactionsDbAdapter, SplitsDbAdapter  moved to `GnuCashApplication`. Static methods are added to GnuCashAplication to get DbAdapters. DbHelper, SQLiteDatabase, DbAdapters now are only created in `GnuCashApplication`'s `onCreate`, and later retrieved by the static methods. DbAdapter does not use Context any more.

Modified some cursor related code. Moved cursor.close() to try/finally blocks, and removed null checked for cursors.

Added `Nullable`, `NonNull` annotations to DbAdapters, Account/Transation/Split, and some related methods. These annotations would not affect generated code, but can help identify possible bugs before/during compile.
I think Android opens the database on its own during database migrations. If you try to open the db yourself, there is a conflict. That's why the migration takes the database provided by the DatabaseHelper.onUpgrade() method. Granted I did not test with opening the db from within the Application subclass, so I may be wrong. 
Have you tested a migration from, say v1.3.3 to this build?