setup.py: Simplify a version check now that we no longer support 2.5
setup.py: Simplify os.path calls
setup.py: Add language version classifiers
setup.py: Use file.write instead of print for manifest
setup.py: Use file.write wherever else possible

This avoids us having to import python 3's print_function in 2.x
setup.py: py2exe cleanup in order to use setuptools

We move everything related to py2exe in its own conditional block and
never bother with it, except conditionally in setup()
This cleanly separates py2exe from the rest of the setup script.

Since setuptools was causing issues with the TranslateDistribution
class, it's likely we will have to use distutils setup() when building
py2exe (which shouldn't be a problem)