So many changes... Will need to unwind a lot of these, but meh.

basically started a RuleWrapped hierarchy beside the Function Hierarchy, but moved them into the providers.  May need to rethink that and move them to the Functions... We will see.
Migrated all references to IVFunction and its subclasses to RuleWrapped<? extends IFunction<Context,Context>> and appropriate subclasses.  RuleWrapped<T> holds an object of type T and an AnonimisedRuleVariableHolder, providing an interface to the ARVH. All "RIF functions" have been abstracted, with the Functions not caring about anonimisation, but being declared with a subclass of RuleWrapped that contains a relevant subclass of ARVH.  When a Function is created using the function's static method ruleWrapped(), the RuleWrapped extension anonimises the input to the function constructor then constructs it.

RIFExternalFunctionProviders have become part of a more generalised FunctionProvider hierarchy, which exists for the express purpose of taking a construct from a specific input language parser (RIF, CSPARQL, Jena, etc) and extracting the appropriate data to construct the equivalent generalised, RuleWrapped function.  Of course, any functions not provided as part of the default set can be written and inserted during the translation phase, as before, but this method provides for the most widely shared features of all rule/query languages to be utilised easily and optimised once for all cases.

Finally, function nesting now works to make functions with nested value functions to be handled as complete, complex functions rather than a chain of basic functions.  e.g. GeoInHaversineDistance(X, long, lat, long, lat) no longer exists, but is semantically equal to NumericGreaterThan(X, GeoHaversineDistance(long, lat, long, lat))

Package structure needs sanitising
Fixed bugs, propogated changes to all Orchestrators, and implemented a basic Rete orchestrator as an extension to the Greedy orchestrator.  All tested and functional, apart from Atom Consequences, which are experiencing a bug I have seen before so will be able to fix quickly :-)