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.