Add/geojson popups#maps 16

To be used with a geojson layer and the map.
Tells the map how to present each geojson feature based on given configuration

Takes some config for where to find html template and css file, returns an object with a method `present`
that takes a properties object and uses the html template and css to render them.
- Can't leak into global space in node modules and even in browserified modules you would have to set window.prop = something to leak it
- Comma first means you can add extra lines without screwing up the git diffs, if you do comma last you can't and var declarations on every line are more verbose than I like.
- It comes down to personal preference, but we should squash such prefernces for the sake of the team so just convince more than 50% of the team to agree that we don't do this for the standards @WayneKoorts is working on and i'll change. (FWIF, you will probably succeed since I think it's only @markstuart and I that do comma first dep. declarations) ;)