style changes

Style changes:

* iife to manage state
* `pad` pulled out of `ISODateString`
* intermediate selector result in `populateGeoFields`
* changed `getLocation` to `withLocation` to reflect the side-effects

Nothing too fancy here. I'm actually a fan of keeping the JS simple. Function declarations while wrapped are just fine and keep things clean enough.

Not sure if this is to your taste but happy to take a look :)