Convert config loading to TOML, refactor appropriately

This PR refactors SimplePush to use TOML config loading, changes the existing portions to a new Application based init system, and config loading for each section similar to heka's.

A variety of Go idiom portions were also cleaned up, the logger was factored into an extensible logger with a uniform interface.

Fixes Issue #35.

Awaiting r+ from @jrconlin, @rafrombrc.
Map lookup is relatively expensive. Struct lookup is very inexpensive. Whenever there's a known-at-compile-time set of string keys in a map, I look twice to make sure a map is really the right choice. Looking below, it *looks* as if the mc_*_timeout keys probably aren't looked up very often, only when a new memcache client is being set up (although I'm not so fond of the cleverness in how they're set, but whatever). The other three timeout values are used in storeRec, however. Will that be hit often? If so, we'd be much better served by creating a struct and using `self.timeouts.del` instead of `self.timeouts["del"]`.