ISPN-4836 Change entrySet, keySet and values to be backing maps

* Collections now fall back to calling cache or using entry iterator
* Reworked entry iterator to use a visitable command
** Allows for compatibility support
** Also easier detection of transactions


Same as for `keySet.size()` and `entrySet.size()`