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 saw some sources that say SQLiteDatabase's query will not return a null cursor, but could return am *empty* cursor. See [this](http://stackoverflow.com/questions/12537493/when-does-query-returns-null-on-android) and [this](http://stackoverflow.com/questions/23140762/does-query-ever-return-a-null-cursor?lq=1). Also, the Android documents says:
```
Returns
    A Cursor object, which is positioned before the first entry. Note that Cursors are not synchronized, see the documentation for more details.
```
It does not mention any null possibilities.