Renamed Lti(Context|Domain).equals()

equals() methods are not considered sensible in JPA objects,
so I've replaced with a weaker "business equivalence" method.

(We need these as there's some logic requiring this in
AssessmentManagementService.)
Minor tweaks after adjusting Eclipse warn level
Fixed two file resource leaks

* Replaced new StreamResult(File), as Saxon 9.1 does not appear to close
the stream it would have opened to save this file.
* Replaced accidental double-open of output file when saving the
assessment result
Made stream closing more consistent

I am now generally using ServiceUtilities.ensureClose()
instead of similar methods in included libraries, as my own is a bit
stricter about what happens if things go wrong.
Replacement logic for candidate data HTTP caching

This replaces the problematic code I commented out a few days ago.
We now do minimal caching of package files via ETags only.
Updated Hibernate version slightly. Still JPA 2.0
Added auto-deletion of orphaned LTI users

There's now a JPA query for deleting out any LTI candidate
users who are not associated with any CandidateSessions.

This has been added to the maintenance tasks performed in
the ScheduledService bean.

(The resolves the final part of issue #39.)
Added CREDITS.txt and LICENSE.txt (finally!)