Reorganised the behaviour of Streams, introducing an abstract class, DirectedEdge, to represent the behaviour on the level of DGNodes and DirectedGraphs.  This makes the EDGE generics a bounded generic, in that EDGE extends DirectedEdge.

DirectedEdges have one OR MORE sources and one OR MORE destinations.  DGNodes no longer connect directly to other nodes, but to incoming and outgoing edges.  In this way, a the semantics of many-publisher, many-subscriber streams can be most intuitively implemented.  The NamedNodeComponent.constructStreamName still allows the construction of unique stream names within the topology (not necessary, but potentially useful) by prepending the specific source and destination being connected by a given Storm Stream.
Updated the NamedNodeComponent static method constructStreamName() to include the StormUtils static method legalizeStormIdentifier() as it constructs an identifier for use specifically in Storm.  The (now duplicate) calls to legalizeStormIdentifier() in the NamedNodeComponent and Storm Builder have also been removed.
Tidied up some elements of the Function Hierarchy, and fixed the MultiFunctionBolt (it doesn’t care whether a function has variables, it just cares that it is initialisable).

Also changed the RIF rule compiler test cases so that each case can specify the amount of sleep desired.
Started debugging issues with the kayo deserialisation:

Because of the holding of NamedNodes in WrappedIVFunctions and WrappedContextISources, NamedNodes were being serialised and deserialised during the build phase.  This is incorrect behaviour, but became more so when the NamedNodes and NamedStreams were edited to be chained together without reference to the over-all graph, as it meant that the entire graph was copied to each function bolt and source spout.

Also extracted the Input during the preparation for deserialisation into its own variable.
Migrated Functions out of providers.

Fixed the use of the Count class during variable anonimisation.

Switched from Node_RuleVariable to Node_Variable in all RIF functions, as RuleVariables are only useful as part of complete Jena rules.

Moved all RIF functions to a consistent package hierarchy.

Added a concept of IConsequence and IPredicate, which provide methods for declaring a functions immediate precursor variable holder in a rule/query plan, for identification purposes.

Added a load of function tests to locate The Bug
Merge branch 'DAGableFunctions' of github.com:scalen/squall into DAGableFunctions
Merge branch 'DAGableFunctions' of github.com:scalen/squall into DebuggingKryoIssues
Migrated all synchronisation of Functions to Kryo, via extending the KryoSerializable interface in the Initialisable interface, rather than using the serialiser utility.  This also requires many private no-arg constructors, as these are accessible via reflection, thereby allowing for deserialisation.

(I have no idea how this all worked before, as everything serialsable via Java serialisation failed during debugging)
Disaster Recovery Commit
Disaster Recovery Commit
Merge branch 'recoveryDev' of github.com:scalen/squall into recoveryDagabble

Conflicts:
	core/ReteStorm/src/main/java/org/openimaj/squall/compile/functions/rif/external/ExternalLoader.java
	core/ReteStorm/src/main/java/org/openimaj/squall/compile/functions/rif/external/geo/GeoInHaversineDistanceProvider.java
	core/ReteStorm/src/main/java/org/openimaj/squall/compile/rif/provider/LiteralNotEqualProvider.java
	core/ReteStorm/src/main/java/org/openimaj/squall/compile/rif/provider/NumericGreaterThanProvider.java
	core/ReteStorm/src/main/java/org/openimaj/squall/orchestrate/WrappedContextISource.java
	core/ReteStorm/src/main/java/org/openimaj/squall/orchestrate/WrappedFunction.java
	core/ReteStorm/src/main/java/org/openimaj/squall/orchestrate/WrappedIVFunction.java
	core/ReteStorm/src/main/java/org/openimaj/squall/orchestrate/rete/ReteOrchestrator.java
Little fixes to make things work (e.g. making the consequences and predicates from Jena implement the appropriate interfaces, though they don't need them).