Add component grade data to student objects before generating

If there is a mismatch between the list of students and the list of
component grades, grade data can stop being output.  This prevents that
situation by first looping thorough and associating the data rows with the
student records so that the data output loop can directly iterate over the
student's records rather than hoping that they're next in the list.
Switch from MySQL FROM_UNIXTIME to userdate()

This both expands compatibility to other RDBMSes and ensures that dates
are output in the user's chosen timezone.
Version bump to RC3