Code reloading

Introduce code reloading with `lotus server`.

### Implementation and CLI usage

All the Lotus frameworks are designed to freeze the code and their configurations when `Lotus::{Model,View,Controller}.load!` is invoked. They don't support code reloading. The reason is to make them to behave equally across the environments. This eliminates uncertainty: the code is always frozen.

However, code reloading is a great feature to have during the development time.

This proposal changes the way that `lotus server` command works. If code reloading is enabled, It forks the process for each incoming request. The fork causes the code to be reloaded, so the application code changes are visible to the new request. It internally uses `shotgun` gem.

Code reloading is enabled by default in development environment when using `lotus server` command.
In order to disable it run with `lotus server --code-reloading=false` or `lotus server --no-code-reloading`.

### Rack middleware stack

It forces an empty Rack stack in favor of the middleware configuration of single applications (see `Lotus::Configuration#middleware`). That inner stack will use some defaults middleware according to the current environment. For instance `Rack::Lint` during development or test phase.

The reason behind this shift is to allow developers to customize their Rack stack, according to their needs. If we put `Rack::ContentLength` in `Lotus::Commands::Server` and a developer doesn't want it, she or he can't remove it easily. On the other hand, if it's included in application's stack, they can change this. In an upcoming proposal we'll introduce `Lotus::Config::Middleware#clear`.

### When and how to use

The command abstracts the underlying application server specified in `Gemfile` (eg, Puma or Unicorn).
If can be used across all the environments with general purposes, but we recommend to use vendor CLI to run Lotus application in production (eg `puma` or `unicorn`).

Application containers are able to start the process from a Rack configuration file (`config.ru`).

Closes #24