DS-2125 Fix possible NPEs in Context object commit/complete/abort

This PR fixes DS-2125 and also adds Unit Tests for the Context Object
https://jira.duraspace.org/browse/DS-2125

While most of the new Unit Tests succeeded by default, the following three tests failed initially but have been fixed by minor modifications to the Context object's commit()/complete()/abort() methods:

* `testAbort2()` - Tests calling abort() twice
* `testComplete2()` - Tests calling complete() twice
* `testCommitInvalidContext()` - Tests calling commit() on a Context which was previously aborted or completed.

The above three tests now succeed and the changes to the Context object resolve DS-2125.
Perhaps we should log a warning, or at least a debug, on commit() or abort() of an invalid Context.