fix: Add output encoding to tests for Python3

In certain environment setups python 3 will detect the appropriate
output as ASCII and will fail when trying to write a unicode string.
Override this by forcing UTF-8.
perf(Request): Use a list comprehension and don't lowercase the headers

List comprehensions are faster than generators. Also, there is no
need to lowercase the header name, since headers are case-insensitive
after all.
docs(README.md): fixed exception thrown in example