Ernst hash setter getter

Situation: the url hash was updated for changes in the baselayer and the map extent. Good thing.

Problem: this was messy and buggy

TODO:
- [x] Move hash setter and getter out of map directive into its own controller
- [x] Update hash at pageload and listen to all changes (two-way)