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.
You don't need the panic / defer in here, you can use the other type coercion spelling:

```go
func IStr(i interface{}) string {
        if i == nil {
                return ""
        }
        if reply, ok := i.(string); ok {
                return reply
        }
        return "Undefined"
}