Setuptools

use setuptools instead of distutils

The biggest thing this gets is `python3 setup.py develop` which makes working on the library in sync with another project much easier. Beyond that, setuptools offers several other features which could be taken advantage of (such as automatic package detection), and it's already in the requirements file.