Switch setup.py to setuptools

Add install_requires so that setuptools does smart dependency management, and use a try-except fallback if the user doesn't have setuptools installed.

Use try-except fallback for setuptools/distutils
Merge pull request #40 from bjlange/fix-setup

add setuptools as preferred library for setup.py