Allow configuration of the Middleware stack

Move the functionality of `Lotus::Middleware` from the application to a
configuration block to allow users to configure the middleware stack.
When the application is loaded, `Lotus::Middleware#load!` will still get
called to load the final middleware stack into the Rack::Builder app
that wraps the router.

Closes #27.

Signed-off-by: David Celis <me@davidcel.is>
Hm. Is there a reason a test like this wouldn't be okay?

```ruby
it 'lazily allows inclusion of new middleware' do
  @configuration.configure do
    middleware.use Rack::ETag
  end

  @configuration.middleware.stack.wont_include [Rack::ETag, [], nil]
end
```