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.
Merge pull request #137 from kxepal/ascii-headers

Strictly require ASCII headers names and values