Improvements

1. Reduce contention by using ReaderWriterLockSlim
2. Remove override of DeleteItem - this is already handled by BeforeAccess/AfterAccess
3. Fix a race condition in Persist