Switch setup.py to use setuptools instead of distutils

distutils is the original package deployment API for python, but the modern recommendation is to use setuptools instead, as that is where modern development effort is focused.

This could potentially simplify our setup.py script as, for example, setuptools has builtin support for executing unit tests using nose and thus doesn't require a custom target.