ISPN-4002 Allow the reduce phase to store elements into result cache
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
ISPN-4074 Introduce a doclet to filter out private APIs from the JavaDoc

- Add package-info.java file for all public packages which need to be documented
- Separate interfaces from implementations by creating appropriate "impl" packages
- Remove legacy classes and interfaces which have moved to commons
ISPN-3797 DataContainer should interact atomically with Persistence

* Changed DefaultDataContainer implementation to use named inner classes.
It avoids duplicate code.