For screens less than 500px wide, allow higher zooming on the map. On the
320px screen I tested, full zoom out was 20x20km, previously it was
5x5km
Log Activity truncation: only count longer lines towards the 30 lines
before truncation.
init checkin of a tile file which also contains header data
Added test and code for new SerializableTile fileformat to hold tile
data as well as an arbitrary number of headers
Added code back to get a full stack trace on Error instances, but not Exception instances.
Dropped the unused getDrawable(InputStream) method and added a System.gc() prior to decoding bitmaps in BitmapTileSourceBase
dirty commit
comments on bugginess.
This reworks the LRUMapTileCache to use a proper LRU.

The capacity of the underlying LinkedHashMap has been modified to be 2x the requested capacity as there's a mismatch in meanings.

The callers is asking for capacity in terms of tiles, the capacity for a linked hash map is the # of hash buckets available which is a smaller number.

The final effect of this patch is that memory usage is pretty constant @ ~37MB on a Moto G with a 5x5 tile screen, but this adds significant flicker.

The upside is that this finally seems to fix the memory consumption error and no more OOM death.
More GC cleanups when swapping low/high res maps.

This prevents the swapping over hig/low res maps from consuming
~5MB per switch and fixes the flickering issue with tiles being evicted from LRU.

This should mitigate the memory leak mentioned at the end of
https://github.com/mozilla/MozStumbler/issues/1120
Comment updates to LRUMapTileCache and ExpirableBitmapDrawable
1121 - NPE due to calling newMLSPoint with a null point
This happens due to 400 errors in requesting MLS point. Which leads to the next question as to *why* we are getting 400 errors here. These should be logged already, so we should investigate.
Added tests and code to serialize tile to File objects.
Added code to write SerializableTile objects to disk in parallel with
standard Tile, etag and cache-control objects.
* Renamed OpenStreetMapTileProviderConstants to OSMConstants
* Removed OSMConstants and IFileSystemProvider as interfaces that TileWriter implements
* Deleted IFileSystemProvider as it's only implementation is TileWriter and the interface type is never actually used.
Renamed the TileWriter to TileIOFacade.
Full stack traces only show up in logs if we're in a debug build now.
* ITileSource::getDrawable() now expects byte[] instead of a File object
* added a MERGED_FILE_EXT constant to OSMConstants for the etag/cache-control/bitmap merged tile fileformat
* SerializableTile no longer tries to use UTF-8 encoding for headers and just writes out raw bytes.
* A cache-control header is always saved with current time + 300 seconds on saveFile() invocation.
* SmartFSProvider now uses the merged tile format exclusively and does not use .etag, .cache_control or .tile files
* A successful HTTP 304 conditional GET will update the cache-control header inside the SerializableTile on disk
* BitmapTileSourceBase has been adjusted to load from byteArrays, but will still honour bitmap options
changed to log.w as per review
Remove magic numbers as per review