Implement setuptools, clean-up argument parsing

In an effort to make this appropriate for builds, I've gone ahead and implemented this using setuptools, as well as updating optparse to use argparse.