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`?~~ Yes.
* ~~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.~~ It's fine.