refactor leaflet map controller

replace the angular-leaflet directive with custom controller and vanilla leaflet API calls. better support for custom implementation including:

- layer groups (Satellite layer being a hybrid of layers)
- fullscreen control
- markercluster custom icon
- changes in markers