Session cookie store with message verification.

This PR brings the ability to store signed session cookies.

```elixir
defmodule MyApp do
  use Plug.Router
  import Plug.Conn

  plug Plug.Session, store: :cookie, key: "_my_app_session", secret: System.get_env("SESSION_SECRET")
  
  get "/put_session" do
    conn = put_session(conn, :foo, "bar")
    foo = get_session(conn, :foo)

    resp(conn, 200, foo)
  end
end
```