Add student submission reports, management and dashboard functionality

@jrbl If you wouldn't mind taking a look.
Yeah, that wouldn't be very nice. I guess I was thinking if you .append(), it would be with the row declaration moved inside the for component in unit.get_children().

Honestly I'm not sure it makes much difference; I just found the -1 indexing a bit weird, but it's not worth contorting to avoid it.