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


Enum should not be handled here, should be left to ```SerializationContext.canMarshall()``` because it needs to check that a custom marshaller was defined for the Enum.