Test case for response with "no-cache" headers.
Fix: if content isn't available in cache, then read it directly.
Move PySide specific code to only one place; make tests pass for PyQt too.
Apply unicode decoding to all content