WL-1158 Email student when quiz is complete

This is a squashed import for simplicity. For reference see the commit messages
below or the branch ending with commit 88863956d92f155766ecb7b5c5253c3eefd249fa

WL-1158 Sends an e-mail each time a user submits an assessment.

This commit wires in the EmailService into TT&S via Spring. It sends a simple
parameterised e-mail upon each submission.

WL-1158 Added a boolean property to assessment to send an e-mail / certicate.

This is a boolean property to control whether or not an e-mail gets sent when
a user submits their assessment (a notion of a 'pass mark' is coming later).
This is currently the minimum required (it omits Oracle support and does not
include conditional support for surveys where the concept makes less sense).
However, it goes from UI, through Java Beans / DAO and down to the persistence
layer. The e-mail sending itself does not currently make use of this yet.

WL-1158 Further coding associated with the sendEmailOnSubmission property.

NOTE: This is a ripe candidate for being 'squashed' into the previous commit!

WL-1158 Added functionality which sends a plain text e-mail to the submitter.

This is beginning to flesh out the functionality and includes the required
fields in a plain text format. It takes note of the sendEmailOnSubmission
property. Currently it does not utilize the notion of a pass mark in any way.

WL-1158 Sending of submission e-mail now takes a pass mark into account.

Note: The pass mark is currently 'hard-wired' to 80%.

WL-1158 Removed redundant methods around the sendEmail property.

Several of the properties in the AssessmentImpl class have associated initXxx()
and getXxxChanged() methods. I originally implemented these for
sendEmailOnSubmission because I thought they were the reason my code was failing
(it actually turned out to be my failure to modify the 'clone' method!). On
closer inspection, it seems as though the properties that have these methods
implemented are ones whose (change of) value has an impact on the integration
with GradeBook; as neither sendEmailOnSubmission nor passMark do, I have chosen
not to implement them for these in order to maximise maintainability and
legibility.

WL-1158 Fixed an omission in the last commit.

Note: Yes, this could be squashed into the last commit! Failed to replace use
of removed initXxx() method with a setXxx() instead.

WL-1158 Added a float property to assessment to capture a pass mark.

This is an optional float property intended to be used in conjunction with
sendEmailOnSubmission, to control whether or not an e-mail gets sent when a user
submits their assessment. It used to specify the miniumum percentage score
required before an e-mail is sent. This is currently the minimum required (it
omits Oracle support and does not include conditional support for surveys where
the concept makes less sense). However, it goes from UI, through Java Beans /
DAO and down to the persistence layer. The UI for setting this is currently
simplistic, but I intend to make it more consistent with other analogous mneme
widgets. (Note: The e-mail sending itself does not currently make use of this
yet).

WL-1158 Sending of e-mail now takes pass mark stored in database into account.

If it's specified to send an e-mail on submission, the code now also takes the
pass mark into account. If no pass mark is specified, an e-mail is sent every
time.

WL-1158 Made improvements to the submission e-mail sending method.

- refactored the method name to make it's intent and function clearer.
- the sent e-mail is now HTML (which will allow for richer formatting in
subsequent iterations).
- added constraint that we only handle submissions that are automatically
marked. This is because the test may not have been officially released back to
the student(s) yet and the total mark (after human marking) may well be higher
than it is at this stage.
- text in the e-mail reflects test / survey distinction accordingly.
- scores are only mentioned with tests that have a total possible score > 0.

WL-1158 Added showing the pass mark for students reviewing their submission.

The pass mark is now displayed to a student when reviewing their submission. If
this has also been released, then this will be rendered as a pass or fail with
appropriate text and an icon.

WL-1158 Added validation to the assessment pass mark value.

An assessment will be flagged as invalid if it has a pass mark and it falls
outside the bounds (where 'x' is the value) 0 <= x <= 100, as it is intended to
capture a percentage.

WL-1158 Made tweaks to the UI widgets that set the pass mark and send e-mails.

Part of the the intent here was to capture the fact that a pass mark in itself
is quite orthogonal to e-mail sending and potentially more fundamental, so I
moved it up the list of controls (and changed the wording of the labels
accordingly). I also made the pass mark box narrower (6 columns equates to
'100.00').

WL-1158 Modified the submission e-mail to look much more like a certificate.

WL-1158 Made the content of the certificate locale sensitive to the recipient.

This includes the text, the date format and the number (percentage) format.

WL-1158 Remove additional components for merge
WL-1379 add username to TT&S results page
WL-1379 Ignoring some of the changes to merge

These changes to `gradeAssessmentView.xml` were removed in MN-1088 and
cause the build to fail.

See 96b1f5cf3ab5f200efec2bae03b722bc40af0bc5 (mneme/trunk@74203)
WL-1379 Fix error in Tomcat startup

Invalid property 'userDirectoryService' of bean class [org.etudes.mneme.tool.GradeAssessmentView]

Fix to tomcat startup

Invalid property 'userDirectoryService' of bean class [org.etudes.mneme.tool.GradeAssessmentView]
WL-1029 Added QTI DTD and XML catalog files

I (Ben Holmes) have adjusted the tool pom to enable build I don't really know
what I'm doing here so I I'll review this commit with someone who does.
WL-1029 Turned debugging output off (XML Catalog)
WL-1014 Added code to handle 'shuffle' toggle in QTI importer, made default 'false'.
WL-1014 Corrected/added more handling of 'shuffle' toggle in QTI importer, made default 'false'.
WL-1030 Look for, and set description field when importing question pool.
WL-1031 Added generic import method to handle Bod Questionnaires (as surveys)
WL-1328 Add CSV export of student scores