Python bindings build with Distribute

This patch alerts setup.py to build with Distribute instead of distutils. This supports existing build and package methods as well as the modern wheel format (python setup.py bdist_wheel) if the wheel package is also installed. The behaviour is to fall back to distutils in case Distribute is not importable.