Make Request and Response extensible.

Seems to work quite well.

### Unresolved Issues

* Exporting `plugin::GetCached` as `iron::Plugin` hides the implementations in the documentation. Possibly a `rustdoc` deficiency, I'll create an issue and see what happens.
* Should we export `iron::TypeMap`?
* Is having a field *and* a method called `extensions` a bad idea? The compiler seems fine with it, and I think it just means we can't use `Request::extensions` as a first-class function inside its own methods.
Should we also export `Assoc`? I suppose most of the time you'll be using plugins, not creating them, so the asymmetry is ok?