Merge pull request #922 from tinwelint/2.0-handle-out-of-disk-population

Handle out of disk space during index population.
Updated tests to run assertions in transaction.
Better formatting of property matcher description.
Move creation of FailureStorage to LuceneIndexPopulator.create()

Avoids leaving TM in a bad state when we fail in the constructor
Make index population job not flip during shutdown

o Fix lucene directory locking related test flakyness
Changed tests to run inside transactions when needed
Revert "Make index population job not flip during shutdown"

This reverts commit 7edfe46550259adc1f28792ddcade3322e137f0f.
Removes StoreOperationTranslatingStatementContext and implemented more
efficient getProperty calls in some places (more to follow)
Makes the sub-interfaces of StatementContext speak for themselves and lets
all implementations of (previously) CompositeStatementContext to go with
one or more sub-interfaces instead. This will have the benefit of having
the cake deflated, i.e. no delegates delegating to pure delegates, but
only delegations between actual implementations.

At the moment this incurs a higher cost when creating the statement
context, but much lower when interacting with the context. The next step
will probably be to reduce the amount of statement contexts we create.