http,util: Adds encoding detection routines.

Fixes to_str, to_bytes where decode/encode was present in Python 2
strings when it shouldn't be.
document.py: Uses HTTP header charset for encoding detection.

CSSScraper supports encoding detect.
Requires chardet. Loosens requirements.txt.