Update the places router to return an obj

Now it can be reused as a Backbone.Router or SubRouter
Added a urlPrefix to the places router
Updated the CategoriesView to use the urlPrefix
urlPrefix needed in variable outside function scope
Passing the urlPrefix through the SearchView and ItemView

Needs to be in the ItemView as this templates creates the <a>'s in search results.
Added missing 'this'
Added content-detail for poi details no longer in content-browse
Set with-detail when the map is shown with the detail panel
Added button to toggle browsing map contents
Toggle the browse pane depending on context
Hide the browse pane when browsing details if device is a phone
Showing a POI detail load the categories in the background

Only if we don't already have some results in the browse pane
Patched styling changes from maps.ox

Changes correct at ox-it/maps.ox@db65ccdba965cbda705dec79fe9b0ce79f18e457
Invalidate the map size as detail/browse panes open and close
Simplified the Places router removed fetch callbacks

As we update the map whenever "sync" fires we needn't set callbacks
Only query for new POIs if the user position actually changed
Stop resetting map after once the user "drags" it

 - We can't capture zoom events in a similar way as when we reset the
   map ourselves it technically is "zooming", no difference for leaflet

Also stopped resetting the map on "reset" events, seems to be just as
good to only listen to the "sync" event. Needs testing.
Restructured MapView slightly to clarify when the mapbounds are reset

Added small amount of docs around this
Added button to toggle following user position
Merge commit '883e6f4b77eff38eb8ed2f2bd99fada22641c636'