It's `Serializable` instead to ensure it doesn't come back into the `Hibernate42CacheEntrySerializer` again.

There are a couple of options here. In _current_ Hibernate, if `CacheEntry.isReferenceEntry()` returns `true` it means the `CacheEntry` implementation is `ReferenceCacheEntryImpl`. So one option is to access that type directly and pull out the reference. Then we can serialize it straight tot he `ObjectDataOutput`. The down side is that if any other `CacheEntry` implementation ever returns `true` that _isn't_ that type the Hazelcast integration will fail in a moderately non-obvious way.

So instead I went with the other option, which is to just serialize the `CacheEntry` itself. But since it _appears_ (I won't claim to fully understand the implementation; I just followed some call stacks) if I did `out.,writeObject(object);` (where `object` is the `CacheEntry`), that will result in `SerializationServiceImpl.writeObject` finding this same serializer and handing the `CacheEntry` back to us to serialize, forming an infinite loop. This wrapper (I believe) should have the end result of making the `DefaultSerializers.ObjectSerializer` handle serialization.

I'm happy to go a different route if something else is preferable!