Add .gitignore file

Not everything shold be tracked in git - in particular, don't track
binary files like SQLite databases and Python bytecode.
Remove binary files

Stop tracking the SQLite database in git, because it's impossible to
resolve merge conflicts. Open the file in an editor - what would you do
if you and I both added records at the same time? There's no way to
merge the changes together.

Python bytecode is automatically generated when the files are run, so
there's no need to check them in. The bytecode is also different on
different operating systems and Python versions, so checking it in is
more trouble than its worth.
Add githooks

Githooks are small scripts that are auto-run before and after particular
git operations. Here, we're using them to run some syntax checkers
before committing code. (It's good for you, even if it's sometimes
annoying.)
Add requirements files

You'll want to track your dependencies here instead of in the
README...this way, they can be auto-installed.
Configure linters

Add config for our syntax checker and our static analysis tool.
Automation with make

Automate common project tasks with GNU make. This'll help a lot once
you're running unit tests and deploying to Heroku.
Lint & style cleanup

Assorted PEP-8 and style cleanups.
Update README
Simplify - no Makefiles, no virtualenv, no pylint

I think I got a little too ambitious - let's scale back the tooling to
just requirements.txt and flake8.
Merge pull request #1 from akshayjshah/housekeeping

Cleanup & project automation