Clean up some bits

Changed the tabs to whitespace.
Changed `Transaction.status()` to use the Django ORM instead of raw SQL.
Other minor fixes.
Added a requirements.txt.