(feat) Wrapped http::Request and http::Response

!#[breaking change]

Request and Response are now iron-defined wrapper structs with ergonomic
fields and convenience methods that don't require mixins. This is a short-term
bug that will require changes but is a huge long-term win as it gives us total
control over our API and removes our direct dependency to rust-http.

Fixes #105
Fixes #94
Fixes #93
We could simply store an &'a str reference to it, making it impossible to change in Middleware as there's no room to change the lifetime of the Request obj, i.e:
```rust
pub struct Request<'a> {
       // other fields ...
       pub originalUrl: &'a str
}

// In middleware...
req.originalUrl = "Hello"; // Could not deduce correct lifetime etc. because the lifetime of Hello != the lifetime of originalUrl
```