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.
This is my fault. The migration will fail. Never tested though.
Checked the Android API Document, `OnOpen`, `OnUpgrade`, `OnCreate` of `SQLiteOpenHelper` are called before `getWritableDatbase` is ever returned. So at this time, the static `mDb` in `GnuCashApplication` in not initialized. Use this the construct GnuXmlExporter will fail.