Fix issue #1431 (Tx and NoTx used concurrently)

A third try...

- Last commit reverted
- Add lock.exclusiveLock in all public methods for CRUD operations
- Remove lock.exclusiveLock in all protected sub-methods for CRUD operations
- Add assertions in protected sub-methods for CRUD operations to ensure lock.exclusiveLock is hold.
- Add lock.exclusiveLock in rollback() public method.
- Review OStorage.callInLock(): add modificationLock call.
- Review OStorage.callInRecordLock(): possible deadlock due to
modificationLock and lock closed in a wrong order.

ANT tests pass.
Waiting Travis for mvn tests...