Join: Introduced marker interface for joiners
Let AbstractJoins implement Join
Using name definition from Join interface
Using BufferFactory instead of buffer in joins

Using Instantiables to create buffer enables us to pass the factory to
thread-safe instances, which then can create their own buffers on demand.
Let JoinFunctions implement Join
Let JoinInplace implement Join
Let AbstractLoopFunction use Instantiable for Buffers
DefaultLoopFunction: Implementation of getIndependentInstance
Joiners: Implementations of getIndependentInstance
JoinFunctions: Added @Parameter annotation to functions
JoinInplace: Refactored set/get functions
JoinInplace: Added Parameter annotation to functions
JoinInplace: Removed unused buffers

we dont need buffers here. we have an inplace function!
JoinInplace: Compute now is overriden from AbstractInplaceFunction
JoinInplace: Implementation of getIndependentInstance
Rename JoinInplace to JoinInplaceFunctions

for consistency
ParallelMap: Using getIndependentInstance() for threading