Flash

Private mechanism to send data across requests.

### Use case

```ruby
require 'lotus/controller'

module Comments
  class Index
    include Lotus::Action
    include Lotus::Action::Session

    expose :comments

    def call(params)
      @comments = CommentRepository.all
    end
  end

  class Create
    include Lotus::Action
    include Lotus::Action::Session

    params do
      param :text, type: String, presence: true
    end

    def call(params)
      comment = Comment.new(params)
      CommentRepository.create(comment) if params.valid?

      redirect_to '/comments'
    end
  end
end
```

The validation errors caused by `Comments::Create` are available **after the redirect** in the context of `Comments::Index`.

### Technical details

  * It uses unique request ID to store the data that we set
  * It's aware of the current request ID
  * When finalized (at the end of the request), it removes all the data that doesn't belong to the current request
  * If after the finalization, there is no data left, it removes the flash entirely from the session.
  * It introduces `Lotus::Action::Glue` which was written initially for testing purposes, but then I decided to introduce it in favor of the [monkey patching](https://github.com/lotus/lotus/blob/master/lib/lotus/frameworks.rb) that we do in Lotus.
  * This isn't a complete solution that we want to expose to developers, but at least it helps with the use case described.

Again, this is marked as private API.

Closes #10