Cookies

@s-panferov I think this handles everything.

cc @reem 
Please change this definition to be:

```rust
pub fn to_cookie_jar(&self, key: &[u8]) -> CookieJar<'static> {
```

We need to specify a static lifetime because Rust will try to infer the lifetime and this is not what we want here. Е.g. code like this won't compile with lifetime errors:

```rust
let jar = req.headers().get::<Cookies>().map(|cookies| cookies.to_cookie_jar(&[]));
if jar.is_some() {
    req.ext_mut().insert(jar.unwrap());
}

// error: cannot infer an appropriate lifetime for autoref due to conflicting requirements
```