Move everything into a RoostController

Also expose a $scope.principal. Doesn't do anything for now, but hopefully it's
a start.
Angular-ify and Bootstrap-ify the Recent Positions dropdown

Diffstat is actually kinda lame. Oh well. :-/
Punt scrollStates special-case key

set('scrollStates') already does dumb things. Use the method.
Move some DOM manipulation to Angular
getElementsByFoo to querySelector

Apparently live node lists are weird? Yeah, I dunno. Whatever.
Bogus placeholder