This fixes a set of bugs related to tracking which threads are active in
getBitmapFromURL.

We now use an atomic counter to track how many threads are active it the
getBitmapFromURL method.

1) No more concurrent modification exceptions, (1 thread is checking
checkThreadControl whilst another is calling getBimapFromURL)
2) No more forgotten elements, there are exit paths that could lead to
elements never being removed from the list (GeneralSecurityException &
empty url)
3) Less memory being used.
This contains 2 simple bug fixes:

1) Possible (unlikely) concurrent modification exception in
UserLocationOverlay
2) We wil now cache the default icon, so we don't run out of memory when
we are loading large GeoJson files.
This change contains the following changes:

1) GeoJson is now capable of parsing out the marker styling as
documented here: https://www.mapbox.com/developers/simplestyle/
2) Icon now cache the marker urls using an LRU so we don't keep
downloading the same image over and over. The cache is clever, so if you
try to download the same url in quick succession it will result in only
a single download.
Merge