Adjustments to make things work with python 2.6, 2.7, 3.2 and 3.3

The basic change here is how the body of the exceptions are returned from the middleware.

Everything beyond that is dancing to make encoding work between the various versions.

`setup.py` gets some trove classifiers to indicate python support.

This code is working against it's own tests and against the tiddlyweb (python3-a branch) in python 3.3 and 2.7.

Next steps:

* a review from @FND 
* a release with a plan to quickly recover from (likely?) encoding weirdnesses that come up