OutputFactory: Create outputs dependend on the input.

This interface replaces the use of the instantiable interface
which previously was (mis-)used to create e.g. buffers in ops
Using OutputFactory instead of Instantiable to create buffers
Joiner/Loop: More elegant implementation of getIndependentInstance
AbstractLoopFunction: Buffer is required
LoopTest: Using OutputFactory now
JoinTest: Added JoinFunctions test
JoinTest: Using OutputFactory now