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.
If you look through Uber's unit tests, we have a specific way we're handling our test data which is hopefully easy and useful enough that we don't need this particular strategy.  Though we can talk about what specific type of test data you want that's not handled by either the unit tests or the insert_uber_test_data stuff.