Fix and optimize HTTP method parsing

The old parser used a manually unrolled state machine
and was broken due to upstream rust issues with match
statements.

The new parser is a read into a stack-allocated buffer
followed by a single match on the contents of that
buffer.

This significantly improves the benchmarks for method
reads by almost 30%, in addition to working around
the upstream rust issues with reordering match blocks.
Merge pull request #84 'optimize-method-parsing'
Remove debug crate

This fixes errors with latest 0.13.0-nightly as crate has been removed:

`error: can't find crate for ‘debug’`
Uppercase phrase constant to remove warnings

Latest 0.13.0-nightly gives this:

warning: static constant `phrase` should have an uppercase name such as
`PHRASE`, #[warn(non_upper_case_globals)] on by default
Merge pull request #86 from mhart/remove-debug-crate

Remove debug crate from examples
Merge pull request #87 from mhart/silence-constant-warning

Uppercase phrase constant to remove warnings
Include port in Host header

Fixes #88.
change Host header to have hostname and port
Update README.md
update mime.rs dependency url
add Headers.set_raw, remove unsafe from .get_raw

Internal representation was changed from an enum back to a Struct again.
The raw representation *has* to stick around, even if parsed as a proper
typed header. The reason is that internally, hyper will access some
headers to know which parts of the http protocol to follow (such as if
the response has a length or is chunked). The raw value may still be
needed afterwards, such as for a DOM binding of
.getAllResponseHeaders().

Since the raw is kept around, the unsafety of get_raw is no longer true,
and so that is removed.

It's still more ergonomic to access the types, and safer as well, so
that is recommended when possible.
Merge pull request #70 from hyperium/raw

add Headers.set_raw, remove unsafe from .get_raw
add bits to deal with Upgrade requests
(fix) fail! to panic!
Merge pull request #91 from hyperium/fix/fail-to-panic

(fix) fail! to panic!
Merge pull request #59 from hyperium/upgrade

add bits to deal with Upgrade requests
Split Header into Header and HeaderFormat

Header contains all of the trait-object unsafe methods
including the name of the header and parsing. HeaderFormat
contains fmt_header, which is the only trait-object safe
method.
Update all common headers for the new Header trait split
Merge pull request #92 from reem/header-trait-split

Split Header into Header and HeaderFormat
split NetworkStream::connect to NetworkConnector