(feat) Add body parsing for POST requests.

I've added a way to create middleware that parses either the url *or* body of a request for urlencoded data.

```rust
use urlencoded::UrlEncodedParser;

// For GET requests
server.chain.link(UrlEncodedParser::for_url());

// For POST requests
server.chain.link(UrlEncodedParser::for_body());
```

I've also removed use of soon to be deprecated `liburl` in favour of [servo/rust-url](https://github.com/servo/rust-url), as per https://github.com/rust-lang/rust/issues/15874.

My approach intentionally doesn't permit parsing of requests with data in both the URL and the body, as this is a violation of HTTP convention (as far as I can ascertain, I'm willing to be wrong).

Close #21.
I agree that it's a bit dodgy, yeah. Servo's URL library has a function for parsing a URL and extracting the 'query' field, but to use it we would have to transform `Request::url` into a full URL. We could do this by adding a `.url()` function to `Request` which is guaranteed to return a full, valid URL. Alternatively, we could construct a complete URL by adding a bogus domain, although I think this is just as dodgy as the current approach. I think the `.url()` option is vastly better, and could be useful elsewhere (plus it insulates us from `rust-http`).