Refactoring to a new startup routine. It is not needed to extend SugarApp in the client application anymore, instead a call to SugarContext.init(Context) has to be made in the Client application. To close the database we have to call SugarContext.terminate(Context) in Application.onTerminate()
Modified the Example to be in line with the new startup system
Preserve original behavior to allow existing applications to specify
SugarApp in the manifest.
Add .gradle to ignore file to usher in support for Android Studio
Improved documentation and cleaned up NamingHelper

1. Added documentation to toSQLNameDefault, toSQLName(Field) and
toSQLName(Class)
2. Rewrote toSQLNameDefault as implementation was hard to understand
(refactored to make it more readable)
3. Added additional test cases to NamingHelper and created helper method
assertToSqlNameEquals(String,String) this helps make the test case
more readable.
rolled back changes, apparently this is not exacttly your typical CamelCase to UPPER_CASE_UNDER_SCORE algorithm

I thought ABC should have been converted to A_B_C (I was wrong). I have
reverted to previous algorithm.
Created ManifestHelper and moved AndroidManifest metadata read methods from SugarConfig to ManifestHelper

Reason: SugarConfig seemed to have 2 different responsibilities (holding
the field cache and retrieving data from the AndroidManifest), this
separates those concerns into 2 different classes.

Changes

1. Created ManifestHelper
   ManifestHelper provides methods for accessing the AndroidManifest's
   metadata (i.e. the database version, database name, etc.)
2. Added documentation to ManifestHelper
3. Refactored references that used SugarConfig to use ManifestHelper

Note:
There was an integer Flag with value 128, I'm not sure what that means
so I added a TODO.
Use self-documenting flag