document.py: HTMLParserTarget emits end tags as well.
converter.py: Uses temp filename. Fixes writing end tags.
document.py: Uses StreamReader instead.

TextIOWrapper closes our file and doesn't support SpooledTemporaryFile.
scraper.py: Resets file offset after read. Swaps in CSS iterative read.