Altered FixedJoinFunction to better represent what variables are available when.  Also made sure that the VariableHolder functions held in variables left and right are set to null during cleanup, as they are only useful during the planning phase, can hold trees of other functions if they themselves are Joins, and are not being efficiently serialised by kryo.
Migrated the OverflowHandlers out of the CircularPriorityWindow class, as they are also used by the HashedCircularPriorityWindow.
Added a constructor to MapRETEQueue allowing you to specify an OverflowHandler for overflowed bindings.
Migrated the DeepHashArray array wrapper into its own file, so that other classes may make use of it.
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.