Move caffeine DB base from acm_integrate to soda + a few misc. bugfixes

Note: The leaderboard doesn't filter out inactive users anymore. (Since calling get_user() on each one just for a little filtering seems expensive to me; if anyone disagrees/really wants this, I can go back and add it)

Note 2: This took several Django hacks to pull off that only Caffeine currently uses. (More specifically, DB routers and a legacy tfBooleanField class. The former should help us move away from Liquid, while the latter is something that should be removed if and when Caffeine is rewritten.)

Bugfixes:
1) Uncommented a @group-admin-required (on edit_tray) that shouldn't have been commented
2) Fixed leaderboard not having an "is_caffeine_admin" variable
It's no longer part of the Soda model. (Previously, votes was a mapping FROM soda TO vending - but now it's TO soda FROM vending.)