ISPN-2840 Conditional operations don't work concurrently for transactional caches with write skew check enabled

* Each transaction keeps a map between key and version that is populated on the first access.
This maps contains the version seen by the transaction and it is attached to the prepare
to perform the write skew check in the remote nodes.

* Added test cases to check if the write skew check is working correctly with IGNORE_RETURN_VALUE
flag.

* Removed the previousRead boolean from the write operation.
ISPN-3235 and ISPN-3236 Repeatable Read isolation fixes and improvements

* ISPN-3235 Repeatable Read: should skip remote get if the key was previously read

* ISPN-3236 Repeatable Read: Transactions are not isolated when read non-existing keys

Same fix solves both issues.