Several extensions/fixes, close #348

The main change is an improved and more flexible logic for the handling of `Host` request headers (including the fix for #348). The previous logic was not conforming to the spec because:

1. It required a `Host` header also for HTTP/1.0 requests (issue #348).
2. It did not allow empty `Host` headers.
3. It did not verify that the `Host` header value conforms the the request target authority if the latter is present.

Relevant part of the spec: http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-22#section-5.4