Started updating state objects to record duration
Tidied up previous commit
Updated TestPartSessionState to record times etc.
WIP refactor of ItemSessionState/Controller

ItemSessionState is becoming a "pure" data structure and will
record built-in variables separately. Functionality added to
ItemSessionController to replace this. Also made ISS implement
the same enter/end/exit timestamps for tests, and started changing
ISC to record this. Needs a bit more work.
WIP: Added support for uncommitted RVs

This is to allow for "save but not submit", which
should fix a bug I filed about this before. Will need to tidy
this up a wee bit though.
Added "hard" reset to ItemSessionController

This is the same as the existing "reinit" concept used
in the engine itself (previously accomplished by creating a new state).
I have renamed the existing reset/reinit as soft/hard reset, but
not all the way through yet.
WIP: Started splitting ItemSessionController

Also started to clean up the call backs for interactions
to make it clearer how they set uncommitted RVs
WIP: Started refactoring interaction shuffle API
Continued tidy of Interaction API
Upgraded JUnit to 4.11 for @Parameterized(name)
Fixed unit test regression in response validation
Tidied up Interaction & Shuffleable
Minor tidy of recent commits
Tidied up class Javadoc
Tidied up some method names in ISController
Split TestSessionController into super/subclass
Thinned out the 'reading' test resource hierarchy
Tidied up JQTI+ unit tests a bit more
WIP: Added AssessmentSectionSessionState
Added suspend/unsuspend item session