Accept any token to be a valid request method

- Rename read_until_space() to read_token_until_space()
- Check if the byte is part of the token in read_token_until_space()
- Return HttpMethodError if the token is empty
- Remove the unnecessary is_valid_method() function
Merge pull request #139 from barosl/is_uppercase

std::char::is_uppercase() -> std::char::UnicodeChar::is_uppercase()
feat(headers): Added a HeaderFormatter for getting the HTTP representation of a header.
Merge pull request #141 from reem/header-show

feat(headers): Added a HeaderFormatter for getting the HTTP representation of a header.
Fix compile error
Fuse ChunkedReader after end

Remove debug
Merge pull request #143 from cybergeek94/master

Compile error and ChunkedReader bugfix
Fix for ASCII_LOWER_MAP visibility and deprecation warnings
Merge pull request #145 from hoeppnertill/master

Fix for ASCII_LOWER_MAP visibility and deprecation warnings
Allow hyper::method::Method to be put in HashMap

This is needed for porting iron/router to hyper.
Add some basic tests for hyper::method::Method

This test case does not attempt to test all the methods exhaustively,
but it does at least test all the methods in the APIs.  There's also a
check to make sure that Method can be used as part of a hash-table key.
Merge pull request #144 from emk/method-eq

Allow hyper::method::Method to be put in HashMap
feat(client): add a status_raw value
Merge pull request #135 from hyperium/raw-status

feat(client): add a status_raw value
feat(server): properly handle requests that shouldn't have bodies
Merge pull request #147 from hyperium/empty-reader

feat(server): properly handle requests that shouldn't have bodies
feat(headers): headers.iter() is more powerful

Previously, iter() returned (&str, HeaderView), which wasn't too useful
other than to write out to a stream. Checking for a certain header is
painful since header names are case-insensitive, but &str isn't. And
once found, you still couldn't do anything with a HeaderView other
format it.

Now, iter() returns a HeaderView, with methods is(), name(), and
value(). You can do `view.is::<ContentType>()` to check what header it
is. And you get the typed value out by calling
`view.value::<ContentType>()`, which will return an
`Option<ContentType>`, similar to `headers.get()`.

Headers also now implement Extend and FromIterator, so it's easier to
build new Headers objects by filtering out a few headers.

Because this changes .iter() to return HeaderView instead of a tuple,
this is a:

[breaking-change]
Merge pull request #146 from hyperium/iter

improve Headers.iter
(fix) unwrap() => into_inner()
convert to using Cow