Optionally use setuptools for installation if available

As it says in the tittle.  This does not include anything 'magic' like `distribute_setup.py` and does not use any features that *require* setuptools.  Since this is an educational tool I agree that it should be as simple as possible.  But this will still install with setuptools where it's available so as to be able to take advantage of features like `./setup.py develop`.