Duplicated Function Interfaces in org.openimaj.squall.compile.data into org.openimaj.squall.compile.data.revised, and migrated StreamAwareFixedJoinFunction to those migrated interfaces.

Heavily updated VariableHolder interface, and introduced a library of static functions for VariableHolderAnonimisation.

Also removed MultiInputStreamFunction as an interface, having realised that in/out streams should remain fixed for a given node once it is created, and if the streams change then the whole node must be replaced (as a given function relies on a given input to remain the same function).

Also added a method to simply flush the output stream buffers for BufferedOutputStreamHolders.
Finished tidying up after the extraction of OverflowHandlers.
Changed the variables holding the variable names from each side to be Collections, as that is more appropriate to their use in the FixedJoinFunction
Migrated some static methods out of their respective Bolt class definitions into the more appropriate static library for Variable Manipulation and Anonimisation.
Merge branch 'dev' of github.com:scalen/squall into DAGableFunctions