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 just wanted to ensure the order of construction of the DB adapters, and don't want change the structure of the DB adapters.

In the current structure, the order of the construction must be ensured to ensure the mTransactionDbAdapter in AccountDbAdapter is not null.

But of course, if the m...DbAdapter fields are removed, and all are got by GnuCashApplication.get...Adapter(), it will be OK.