New, Angular-based UI

May as well move this over to master, since this is the direction we've settled on.