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.