Make autoclose easier to understand, more consistent and more testable

 - Move transaction state transition logic to TransactionStateMachine
 - Define autoclose behaviour in BlobTx to behave like TransactionStateMachine
 - Implement LocalBlobTx using TransactionStateMachine
 - Add tests for TransactionStateMachine
 - Update existing unit tests that relied on old auto-commit-on-close behaviour
Rename class to remove noise
Merge 'ticket-15-improve-autoclose'

Conflicts:
	src/doss/BlobTx.java
	test/doss/DOSSTest.java
Transactions should only be removed on commit or rollback
Merge pull request #30 from nla/ticket-15-improve-autoclose

Make autoclose easier to understand, more consistent and more testable
started working on put.
spelling error...
First draft of a cli-put command - puts a file or two into the blobstore; adjusted pom to include h2database stuff in more than just testing.
Use fancy automatic try with thing to automatically close the tx
Merge branch 'refs/heads/cli-put-shuang' into cli-put

Conflicts:
	src/doss/Main.java
made an openBlobStore()

only call System.getProperty() once;
minor formatting change to cli-put output
main throws IOException (Java prints the stack trace); still catches CommandLineException for helpful error message
basic unit test for a working cli put
CommandLine Exception if file does not exist.
Print a reassuring "aborting" message when something goes wrong in put
Merge pull request #31 from nla/cli-put

CLI put command
Show the filesize in the cli-put output
'-h' option to the cli-put command for human readable size output.
make human-readable the default; option -b for displaying size in bytes