Fix more external dependency versions.
Fix tox test config for 3.3, add for 3.4.
Fix has_key() usage for 3.x.
Switch to io.StringIO.

We no longer support 2.5, so this is now a possibility.
Fix more filter test outputs, again.
Revert "Switch to io.StringIO."

This reverts commit 5514316cf56bb19d5d1f3ca369e4b75a1c2ace7c.

This actually causes a lot of errors on Python 2 where we try to
write str objects. It would probably break external code, too.
Painful work to make the test suite work again.

No using py.test as the runner, though tests still rely on nose.