use geo-lookup when first loading the app

try it. it should work for most cities but there geo-lookup in general
is difficult so I can’t say for sure whether the response returned by
google maps will always work right, just fyi

also there is no error handling for browsers that don’t support this

some other small cleanups and edits

- we should refactor this to a container or something in the future
- promises are suer fun in last 24 hours, finally
- not sure these promises are best practice though, just fyi