catching errors for missing environments
changed variable name from binding vars to hashing vars
split up the hashing operation to prevent hashing on variables that aren't grouped.

Also produced a unit test to fully test this grouping
removed redundant code in SPARQL triple and functor functions
added a means to extract the clause used by the variable holder of atom and triple filter functions
Added a new kind of filter that can be chained dynamically or statically to emulate both triple filtering of any kind and atom filtering of any kind.  Also provided is a new form of JoinComponent that corresponds to such a set of filter functions.  these "many function" JCs are currently ignored by orchestrators
updated the greedy orchestrator to acknowledge "many function" JCs, and split up the process of creating filter nodes to isolate their constructiong and connection to other nodes, allowing many filters to be chained (whereas before all filters could only be directly connected to the source)

Also updated TPLO orchestrator to take into account these changes to the creation/connection procedure
updated the OPSDisplayUtils to return the JFrame created by the display method, allowing further manipulation after its creation
added commented-out code that may become useful later if I migrate completely to binding environments at some later date
added a small data sample for testing purposes
changed the key set used when converting environments, to correct an error involving the appearance of null-keyed bindings.  Also changed logging to reduce clutter in the logs
Added a flag to allow visualisation of the network when running the squall tool (not implemented)
implemented visualisation in the squall tool
converted RIF compilation from monolithic triple/atom filters to groups of bindings comparison filters
updated gitignore to ignore files starting with the word Local