Store config in config object.

This config object is designed with env vars in mind. Specifically the
ones that you forget to set before running your app.

The configuration is set like this:

Southpaw.configuration do
  foo bar: 'baz'
end

Southpaw.application.config.foo[:bar]
=> 'baz'

It will raise a NilConfigValue error if any of the values passed to the
config object are nil. The idea is to fail fast and loud when these
things are missing.