HTTP accept header

A very basic & naive implementation of the HTTP Accept header. It uses http crate and mime crate to parse the accept header. Basic data structure:

```rust

[derive(Debug, Clone, PartialEq)]

pub struct Accept { pub wildcard: Option, pub types: Vec, }

[derive(Debug, Clone, PartialEq)]

pub struct MediaType { pub mime: Mime, pub weight: Option, } ```

Usage:

```rust // parse accept header let accept: Accept = "application/json, text/html;q=0.9, text/plain;q=0.8, /;q=0.7" .parse() .unwrap();

// prepare a list of supported media types let available = vec![ Mime::fromstr("text/html").unwrap(), Mime::fromstr("application/json").unwrap(), ];

// content negotiation let negotiated = accept.negotiate(&available).unwrap();

// "text/html" shall be chosen since it is available and has the highest weight asserteq!(negotiated, Mime::fromstr("text/html").unwrap()); ```