(feat) Session.

Should these bounds be on new? As in:

```
pub fn new<K: ..., V: ...>() -> Session<K, V> {}
```

This would make hinting these types easier, but might have other drawbacks. Thoughts?