Add debug logging statements, visible in BuildConfig.DEBUG only (i.e.,
not in release), that help track the logic of regions retrieval from the
Regions REST API, local caching of the regions data, and loading of
regions data at runtime.
Adds an AsyncTask (ObaRegionTask) that is triggered on app startup to
fetch the regions info after initial app install, and either auto-detect
what region should be used based on current location and the region
bounds, or show the user a list of regions to pick from if auto-detect
isn't successful.  Refactored some methods from ObaRegionsLoader into
RegionsUtils, since they were also needed in ObaRegionTask.
Fix issue of region baseURL path being overwritten by the REST API
method path.
Fix issue where minDist wasn't set to the measured distance when finding
a closer region.
Better log output of base URL.
Remove the default values for the custom OBA API server endpoint
preference that can be entered by the user.  When dealing with
multi-region, we only want to override the selected region and use a
custom-entered API endpoint when this preference has a value, and
therefore there shouldn't be any value stored by default.
Refactor getting preference for custom OBA API endpoint into RegionUtil
and remove unused imports.
Add local check on startup to see if user has entered custom API URL,
and if so don't make the Regions REST API call.
If user has entered custom API URL, then show the out of range dialog if
the user is out of range (previously, this wouldn't have been shown if
the user didn't have a region selected and had entered a custom API
URL).
For both map controllers, when the loader is called asynchronously from
UI events (e.g., map moved), before making a call to the OBA REST API
make sure that we either have a region selected or the user has entered
a custom OBA REST API URL.  This prevents unnecessary REST API calls to
a OBA server while we are trying to fetch the region info from the
Regions REST API asynchronously.
Add TODO placeholder for possibly checking region proximity on every app
startup
Remove unused imports.
Implements retrieving the regions.json file from a local resource
packaged with the APK in case of Regions REST API failure on the first
install.  Also adds a callback from the AsyncTask to the map UI so that
the OBA info is definitely refreshed when the task finishes.
Improved implementation of getting regions.json file from Android
resource (i.e., bundled with the APK).
Added failover attempt to get region info from the local provider,
before going to the local resource regions.json, if we tried to force a
server refresh of the region info to the Region REST API and that call
fails.
Refactor get/setCustomApiUrl methods from RegionUtils to Application.
Refactored mapController callback in AsyncTask, and added slight delay
when calling the callback to ensure region is set first.
Update ObaRegionLoader logic for fetching region info from multiple
sources (local provider, server, Android resource) so it matches the
ObaRegionsTask.
Fix issue where Jackson was failing to parse the Region.supportsXXXX
attributes from the regions.json file (i.e., they were all initialized
to false by default, and this didn't change despite different values in
the JSON file).  ObaRegion methods for "supportsXXXX" attributes were
modified to match name of JSON elements, "supportsXXXXApis".  Uncomment
the RegionUtils code that checks to make sure the region was usable
before using it, since it now works after the above fix.
Remove unused imports.