Add student submission reports, management and dashboard functionality

@jrbl If you wouldn't mind taking a look.
This is not a comment for the code you've wrtten specifically, @kluo, but more a general observation, that everything from 295-304 is boilerplate. There must a bunch of places in the code base where we want to run some block of code on every component in a course, and it would be nice if we said:
```
for component in every_component_in(course):
    #do stuff
```

I'd love to see that get factored out and sprinkled around everywhere it makes sense, but I think that that factoring is out of scope for this project. I'd be happy if you made a card on... somebody's backlog for it though.