Faster report generation

This PR potentially addresses the problem of report generation hosing the production server - report generation is now roughly twice as fast and should use less memory.  Most of the speedup is a result of reordering the query lops and using the recent LC/PC/FC improvements to do a single PC/FC lookup per AE, and using those values for each associated SE.

The `Section` column has been split into `StudentSection` and `CohortSection`.  The former is the Section currently associated with the current Student, and the latter is the Section associated with the current Assignment's Cohort.  Recall that Cohorts do not necessarily have an associated Section, and that Students could potentially switch Sections/Cohorts throughout the Klass's duration, receiving Assignments from multiple Cohorts/Sections.