LDEV-2474 use authoritative sources to determine an answer's question type as well as it's column in the spreadsheet; you can't assume a Set will always have the same ordering.
LDEV-2472 according to stacktrace, hibernate flushes session at beginning of findById(userId) call, so don't remove child object until after any hibernate ops
LDEV-2449 invalidate session when user has lost their cookie, so we don't accidentally access a page without knowing the right session id/cookie value (for some reason jboss gets confused and returns a 'Session already invalidated' error in an exception)