Rename AbstractFunctionJoiner to AbstractJoinFunctions

* Consistency reasons
* Also using OutputFactory now
Renamed AbstractJoinFunction to AbstractJoinFunctionAndFunction

* consistency reasons
Renamed AbstractJoinInplace to AbstractJoinInplaceAndInplace

* consistency
Renaming joiners and adapting other classes to these  changes

* Consistent naming reasons
* Schema:
** Interfaces "JoinXAndY"
** Implementations "DeaultKointXAndY" or "DefaultJoinXs"
DefaultJoinFunctions: Fixed unwanted artifact
AbstractJoinFunctionAndFunction

bufferfactory is not required anymore
DefaultJoinFunctions: Added plugin annotation
Let JoinFunctionAndFunction implement Function
JoinFunctions extends Function
JoinTest: Updated Test of Joiners
Update javadoc of join functions

Hopefully the new descriptions are clearer and more consistent.
Merge pull request #14 from imagej/joinerRefactoring

Joiner Refactoring