Remove Iterable<T> from properties

Remove: The Iterable<T> interface from the property classes. The implementation of the interface just didn't make sense at all.
New argument validation algorithm & vararg to array transformation

Add: A new clearer algorithm for validating function arguments against the defined parameters.
Add: Vararg arguments are transformed to arrays (for example, the argument array ["testString", 0, 1, 2] would be transformed to ["testString, [0, 1, 2]]). The type of the inner vararg array is equal to the type of the parameter that declares the array/vararg.
Initializable & Property getters/setters

Add: Initializable features that provide an initialize() method for better custom feature definitions with persistence support. See the Initializable docs for more details and further explanation.
Add: Properties have their own custom feature definition (PropertyDefinition) and support internal getters/setters.
Add: The AbstractProperty class implements the basic functionality of all properties.
Minor fixes

Fix: Many small JavaDoc issues.
Fix: The DefaultFeatureHolder no longer returns a modifiable iterator.
Fix: FunctionExecutors created by the CollectionPropertyAccessorFactory call the next executor at the correct time.
Remove LockableClass initialization from DefaultFeatureHolder

Fix: The LockableClass initialization isdone in the actual lockable classes instead of the DefaultFeatureHolder.
Update changelog