Fixes for issues #74 and #75

- [x] moves server-state global vars into geobinServer struct for modularity
- [x] geobinServer manages everything outside of `main()` that touches redis, or the socketmap, or http routes: handlers, middleware and some util funcs become methods of geobinServer in order to access the state they require.
- [x] redis client and pubsub connection are now interfaces and mockable for testing purposes, rather than requiring a live redis connection
- [x] test tweaks and all tests passing w/o redis running

miscellaneous:
* move some stuff out of init that we don't want to run during tests (fixes the config part of #74)
* remove `util.go` since no longer a major distinction