Merged in changes from github.com/crankycoder/osmdroid at revision: 16dd5f3a18c4014f8ab1246337ce632c33e38946

* Added a BetterTileProviderArray
* Repointed MapView to use
* Add a generic LRUCache implementation
* Add a SmartFSProvider which is a file storage backed tile provider
  and falls back to loading a tile from the network if nothing is
  found on disk.
* Added a TileDownloaderDelegate as a self contained tile downloader
  which also saves Etag header data.
* Cleaned up flush() and close() calls to the IO streams for etag and
  tile writing
* More logging. So much logging.
* Minor interface additions so that the SmartFSProvider and
* TileDownloaderDelegate can operate properly.
* Added a forced 2000ms timeout for sockets as well as HTTP
* connections
* Added  TileDownloaderDelegate::isTileCurrent() to check if the etag
* on a tile is current
* Added methods in TileWriter to support reading tags for a given tile
* Broke out the isTileCurrent() and downloadTile() methods into their
  own try/catch blocks so that HttpHostConnection errors can be caught
  as an IOException. This prevents the worker pool in the
  ExecutorService from receiving uncaught exceptions.
updated SmartFSProvider comments
Disable debug logging for release builds
Added hardcoded caching logic to set 300 seconds as the cache expiry policy for tiles.
Logging cleanups and removed slf4j logger in preference for the mozstumbler logger
Lint cleanups for OSMDroid
Re-enabled converting warnings into compile time errors