New APN database

## apntool
* Imports Google-provided apns xml file (found in Android and Hangouts app)
* Creates a gzipped easily-queried, legacy-friendly SQLite database
* `./gradlew -q updateApnDatabase` to re-run and copy over the new asset

## ApnDatabase
* Use SQLiteAssetHelper to gunzip from assets and version control the database
    * DB version is set to Google's xml file version for easily tracking when we need to update
* Lookup MMSC info with the following priorities:
    1. Try to get relevant MCC+MNC from multiple places in order of probability of it being correct
    2. If MCC+MNC was available, also try to get APN name via the MMS `NetworkInfo`'s `extraInfo` string.
    3. If no matching MMSCs were found including APN name, try without the APN (old behavior)
Is this class necessary? Can't the ApnDatabase constructor just be copy(assetPath, databasepath); database = SQLiteDatabase.openDatabase(databasePath, ...)?