Strictly require ASCII headers to have ASCII names

Header value still can have unicode values. Also raise proper exception
for invalid type or value with a friendly error message.

See http://tools.ietf.org/html/rfc7230#section-3.2.4 for more info.