Added stream handling interfaces (handling incoming and outgoing in separate interfaces), and combined them in a new compound function, an SIVFunction.  This is functionally equivalent to an IVFunction except for additional methods concerning accessing and name-mapping streams, and modifying the apply() method to also take a stream name.
Created interfaces for the SteM data structure, and a duration-based extension (differing from the MapRETEQueue mostly in that building to the SteM [offering data to the queue] and probing the SteM [checking if any of the data in the queue matches the offered data] are segregated and individually accessible).  This will allow for SteMs to ignore "siblings" when paired in Join functions, and for them to be used individually within the Eddying algorithm.
A SteM implementation for use in FixedJoinFunctions (i.e. they rely on a fixed, complete set of shared variables).
A first pass at an alternative join function that is stream aware, holding the information about the streams that feed its left and right sides without requiring specific text to be used, and also acting as an OverflowHandler by providing secondary output streams populated with out of date and excess sets of bindings.  This will allow for functional subsumption between joins that only differ on window size.
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.
Merge branch 'dev' of github.com:scalen/squall into DAGableFunctions
Minor cosmetic edits
Divided VariableHolder interface into two, one inheriting from the other:

VariableHolders now have a single method: variables(), which returns the list of functional variables important to the holder.  This satisfies classes like NamedStream.

AnonimisedRuleVariableHolders now contain the rest of the methods originally crammed into VariableHolder, allowing for anonimisation alongside holding rule variables, and maintaining a mapping from rule variables to anonimised variables.  This satisfies classes such as those that implement IVFunction.

This change requires pretty sweeping revisions of the NamedNode and OrchestratedProductionSystem hierarchy, down to where generics take over (DGNode requires no revision, as it leaves the EDGE and NODE types as generic).

I have also moved the StreamAwareFixedJoinFunction in with the revised rete orchestration classes.
Merge branch 'dev' of github.com:scalen/squall into DAGableFunctions
added an import for WindowInformation, which has now been moved into the parent package.
Renamed all revised Classes back to their original names, as they are now distinguishable by being in a "revised" sub package of their original packages
Moved all "revised" sub packages into a new "revised" sub package of squall that mimics the original package hierarchy of squall.
Removed a superfluous import to a removed sub package.
More classes needed modification to run with the new form of AnonimisedRuleVariableHolder, and I am sure there will be many more to come.
UNFINISHED

started to revise the Greedy Orchestrator into something more Rete friendly.  This has also involved as-yet-minor revision to the NamedStream class, thus far consisting of being able to duplicate the stream so that more than one function may feed the same logical stream (i.e. multiple sources/consequences).
Merge branch 'dev' of github.com:scalen/squall into DAGableFunctions
UNTESTED - Propagated all changes regarding variable anonimisation through all existing functions.  Next phase is testing.
Fixed some old tests to point at the right files
Protected all loops with a different first iteration (i.e. with a for loop with an initialisation of i++).
Other sanity checks on predicate functions.