ISPN-374 Hot Rod remote events server and Java Client implementation

* Created, modified and removed events and their expectations
with each of the Hot Rod operations.
* Filtered events with optional binary parameters on registration.
* Custom events with optional binary parameters on registration.
* Testing event consumption for distributed and replicated caches
with filtering, custom events...etc.
* Java Hot Rod client implementation with support to add and remove listeners,
including passing converter and filter factories and support for parameters.
* Server configuration gets a Marshaller configured to be able
to unmarshall binary parameters for filter/converter and pass
them to the callbacks unserialized.
* This marshaller also used to enable fully typed converter/filter
implementations rather than working on binary payloads.
* Retrieve list of listeners and remove listeners on stop
* When a client listener is added on a cache that has contains data, the client
receives callbacks for all data available in the cache cluster-wide.
* If a node goes down, the Java Hot Rod client fails over any client listener
registration to another node, and cache data iteration happens event.
* When the failover occurs, clients can listen for a client cache failover
event to for example: clear any local caches the listener might have.
ISPN-374 Hot Rod protocol 2.0 documentation updates

* Documentation update on lifting the restriction on working solely on
defined named caches as part of Hot Rod 2.0 protocol improvements.
* Documentation update on new segment based consistent hash header.
* Documentation update on Hot Rod 2.0 protocol changes with regards
to adding/removing client listeners, and event formats.
* Update Java Hot Rod client documentation to show how to consume
events, how to apply filtering and how to generate custom events.
* Document state iteration and failover of client listeners