(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 worry that this is pretty fragile for parsing. Using a more heavy-duty parser, if available, from the servo url crate would be significantly better.

If you have a strong argument for why this won't break unexpectedly, then I'm fine with it.