Database and cache dissynchronization after transaction rollback

The issue #261 is addressed here

The idea is to substitute a temporary cache object for the QApplication::$objCacheProvider in a TransactionBegin call.
All objects written in this temporary cache object would be dropped in a rollback and written in an actual cache on a commit

the actual cache object would be restored in both roll back and commit calls.

A test suit is included.