Replace initial values with value factories

Replace the old concept of initial values with value factories. These
factories are functional interface implementations and allow a more
flexible and more elegant solution for the initial value problem.
Use Typed<T> for FactoryManager.create()

Use the Typed<T> interface in the FactoryManager.create() method for
adding extra type-safety (at least for the caller).
Add classmod factory system and property definition factories

Add: The ClassmodFactory class stores a FactoryManager and makes it publicly accessible.
Add: Factories for (Collection)PropertyDefinition objects.
Fix small javadoc issue in AbstractCollectionPropertyDefinition
Overhaul and update changelog