ISPN-4079 Enhance Cache addListener method to match types for filter and

converter

* Revamped quite a bit of the typing to have generics
* Removed value equivalence for DataContainer as it wasn't used

https://issues.jboss.org/browse/ISPN-4079

I know this grew in scope quite a bit, but to properly type these a lot of the inner workings needed types without doing casting everywhere.  Overall I think it was beneficial as it helped find that the types we were providing for the DataContainer Value Equivalence weren't even used properly and actually could have cause a ClassCastException (DataContainer is `<K, InternalCacheEntry<V>>` however our Value Equivalence was for V only.  Also I took the moment to make a lot more of our classes more flexible by taking in super types when appropriate.