Removed temporary BEMA test closing code
Removed unused code from AdhocService
Minor refactor to CandidateSessionCloser calls

I've moved the result calculation logic out of CandidateSessionCloser,
as I noticed results were sometimes getting calculated twice. The net
result should be a bit easier to follow.
Change to semantics of CandidateSession finishing

I have renamed 'close' as 'finish' in the CandidateSession entity, with
slightly better semantics:

1. Test sessions are now marked as finished when the last enterable
testPart is ended, which is the earliest possible time that OVs will be
finalised. LTI return now happens at this time.

2. Item sessions will continue to be marked as finished when the item
session ends. Note that it's possible for the session to reopen again,
and the session will be marked as non-finished if this happens.

Some schema changes will be required to accommodate this, so I've added
an entry to the migration script.