merge Eli's sideboard branch into master

uber2.0 WIP

a few things are still borked after this merge, need to fix some stuff.
documented here:
https://docs.google.com/document/d/1p0AReHCmCatfp0GwTbilvovIZSc6fjKZIWPxKSiVINY/edit

TODO: after the merge, make those into issues.
I've actually ripped out all of that old stuff, so I think everything in budget.py is current and useful.