Fixed ConcurrencyException in ShadowLocationListener

Currently when calling ShadowLocationListener:removeUpdates() inside LocationListener:onLocationChanged() a java ConcurrencyException is thrown because the location listener is removed from a list, while the same list is being iterated.
This PR fixes this issue.
I don't like this solution at all. If we shadow a new method we have to remember to call this method first.

A better approach would be to just use a `CopyOnWriteArrayList` inside the map.