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 clean` clears out all the bytecode. Sometimes jumping around in the git history will break the Python interpreter, so it doesn't realize that a file needs to be recompiled. `make clean` forces a fresh rebuild.