Broken recurring-aware get method.
A still-broken attempt to merge recurring headers.

* If a header is a recurring header, getting it should return an
  optional merged header.

* If a header is a singleton header, getting it should return an
  optional merged header.

* Set-Cookie should be free to respond with a Seq of Headers, since it's
  repeatable, but not in the pattern of RFC2616.

The covariant return type of get may be so confusing as to render it
worthless.  And the tests don't pass.  And there are some nasty casts.
This still requires deeper thought.
Fix tests.
Eliminate header value casts.
Get recurring header names from key.
Don't need MyType anymore.
Get name from key for all parsed headers.
Define ExtractableHeaderKey for all RFC 2616-compliant headers.

Set-Cookie is not compliant, because it can appear multiple times and
is not foldable by joining with a comma.  Everything else should be
Extractable.
Clean up empty objects.
Merge branch 'topic/header-get' into develop

Conflicts:
	core/src/main/scala/org/http4s/HeaderCollection.scala
	core/src/main/scala/org/http4s/HeaderKey.scala