ISPN-2281 Extend metadata support to internal cache entry structure

* This will enable for server endpoints that add extra metadata
(REST, Memcached) to pass in their entire metadata object to the
internal cache entry structure.
* Remove GetCacheEntryCommand and leave GetKeyValueCommand with
a flag to decide whether to return entry or value. This keeps
visitor small, making it easier for interceptor implementors.
* Remove VersionedPutKeyValueCommand and instead have
PutKeyValueCommand take metadata information which contains version.
* Removed all Versioned*Entry classes and replaced them with
classes that take metadata.
* Original cache entry classes (that take no metadata or version)
have been left in order to keep memory consumption to minimum
when neither version nor custom metadata are stored.
ISPN-2281 Convert REST server to store data passing in MIME information

* Created REST MimeMetadata class implementing Metadata to pass in
content type information.
* Added putAsync(K, V, Metadata).
* Remove lifespanTimeUnit and maxIdleTimeUnit from Metadata interface
which are not really used. Metadata implementers should provide
lifespan/maxIdle times in milliseconds.
* Fixed bug where Metadata*Entry instances were not correctly
determined when using a custom Metadata implementation. Added tests
for it too.
* Make all Metadata*Entry instances return the metadata in their cache
value, and not null.
* Remove unused key equivalence check in Hot Rod server.
ISPN-2281 Memcached server to pass flags and version via Metadata

* Added MemcachedMetadata to ship flags and version information.
* Added replace(K, V, Metadata) operation and added tests.
* Fixed bug where ReplaceCommand was not using valueEquivalence to
compare old and new value.
* Created ByteArrayCacheTest to exercise cache operations when
storing byte array key/value instances.
* Added externalizers for all metadata classes.
ISPN-2281 Add compatibility mode for REST and Memcached

* Added compatibility mode XML and programmatic configuration.
* Added REST and Memcached compatibility tests with Embedded
and Hot Rod.
* Add flags to signal operations original in server endpoints,
in particular Hot Rod and Memcached, which allows selecting
the correct type converter according to each server endpoint
requirements.
* Created type converter implementations for Hot Rod, Memcached
and Embedded modes. REST server does not really need it since
it alredy does a lot of type conversion based on content type.
* Enhance type converter interface to allow hooking operation
origins with their corresponding type converter instance, and
enable marshaller to be set in order to help interoperability
between endpoints.
* Fix metadata override bug