Cleanup & project automation

Some basic Django hygiene and automation, along with some code cleanup. Best viewed with whitespace diffs suppressed, and best reviewed commit-by-commit.

Nice start, @bdyn!
`make lint` runs two code checkers: `flake8` is mostly for syntax (it doesn't really understand your code in any deep sense), and `pylint` attempts to actually analyze your code. Python is a really difficult language to analyze well, so `pylint` is occasionally wrong.