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.
That depends on which approach we plan on using for deployment:
* we could do what we're doing now, which is check out the latest code from Github and then just run it; in this case you run Uber by checking out Sideboard and then checking out Uber in the plugins directory (I can walk you through how to configure this), in this case you run Sideboard by running ``python sideboard/run_server.py``
* we could install everything for real using the Debian packages which my buddy Rob is putting together; in this case you'd just start the sideboard service

I'd like to do this with packages, but we don't actually need to do that for prereg to launch; we could easily just do the simple thing for prereg and take care of doing it "right" later.