ISPN-3120 StateConsumerImpl can ignore state received during a rebalance

* Receiving state shouldn't finish the rebalance before all the added
  segments have a source.
* When all the owners of a segment leave and new owners are assigned, the
  new owners should not request state for those segments.
ISPN-3108 Server compatibility minor adjustments

* Extend keyEquivalence usage to transaction collections.
* Add a getInstance() method to AnyEquivalence to provide a typesafe
equivalence for any type that relies on the object's equals/hashCode()
implementations.
* Byte arrays can now be stored in tree bins in EquivalentCHMv8
* Achieved by making sure that the keyEquivalence's isComparable method
for byte arrays returns true, and a unsigned method to compare byte
arrays is implemented.
* Make flag aware commands metadata aware. Makes it easier to pass down
metadata information without having to do instanceof/cast of classes.
* Add lifespan(long) and maxIdle(long) to Metadata builder
* Use immutable metadata instance when no expiration parameters
* A side effect of this is that CacheImpl does no longer extend
CacheSupport because that in itself does not extend AdvancedCache and
the methods defined are defined as final.
ISPN-3132 Remove confusing Metadata.read method, replace with helper

* Also moved base metadata classes to org.infinispan.metadata package
ISPN-3069 TimeService implementation
fixed compilation errors