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


@galderz @anistor  If you could verify this change is okay.

Entry iterator before didn't support compatibility mode.  In fixing that exposed an issue that the custom type returned from remote indexless query was not able to be marshalled by the protobuf marshaller.  The other way I was thinking was to have multiple marshallers to fall back on, but I don't know if that is better or not.