Strictly require ASCII headers names and values

    Historically, HTTP has allowed field content with text in the
    ISO-8859-1 charset [ISO-8859-1], supporting other charsets only
    through use of [RFC2047] encoding.  In practice, most HTTP header
    field values use only a subset of the US-ASCII charset [USASCII].
    Newly defined header fields SHOULD limit their field values to
    US-ASCII octets.  A recipient SHOULD treat other octets in field
    content (obs-text) as opaque data.

    -- http://tools.ietf.org/html/rfc7230#section-3.2.4

Allowing non-ASCII headers names and values may eventually cause some
nasty errors which may be hard to debug.

Also, this change allows to pass headers name and values as bytes in
case when they fulfils the requirements. Very useful when header have
to contain some base64 encoded value which is in bytes by default.