Simplify LockingStatementOperationsTest.
Add missing tests to LockingStatementOperationsTest.
Take a schema read lock before checking for constraint violations.

o This was the intention of the previous design but it was not working as intended
   because of the way the operations cake is structured.
o We need to take this extra lock explicitly rather than relying on natural locking in
   schema operations because calls to schema operations from entity operations in
   lower layers of the cake do not go through the entire cake.
o The trigger for making this fix was a ConcurrentModificationException from
   ConstraintEnforcingEntityOperations when the set of constraints is modified under
   the feet of the constraint iterator.
o This change means that some entity operations will now block when schema operations
   are happening. Tests that asserted otherwise have been deleted.
Simplify TestLockManagerBean so that we can understand failures.
Remove unnecessary locking in ConstraintEnforcingEntityOperations.

o We always take the schema read lock when we get hold of the
  IndexDescriptor, so there is no need to acquire the lock before
  using it. It woud be incorrect to do it the other way round because
  the index might be deleted between getting the descriptor and using
  it.
Remove debug stdout logging from test.
Merge pull request #1539 from benbc/2.0-fix-schema-locking

2.0 fix schema locking