Added a Makefile.

The Makefile provides the useful maintenance targets that setup.py just
doesn't provide.
Merge upstream changes.