Consolidated FilteredSceneProcessor filter access into helper methods.

At a later date this will give us a single place to control the Context in which filter queries are made.
First pass at SetFilter.
Added further unit tests for SetFilter.
Made SetFilter compatible with Isolate and Prune nodes.
Improved FilteredSceneProcessor documentation.
Added UI file for SetFilter.

This includes a useful right click menu for populating the set plug with the names of sets available in the connected scenes.
Replaced custom Filter context with field in standard context.

Now we have an optimised Context implementation, the performance difference appears negligible, and using the standard Context for everything is preferable over having special cases.

I did consider modifying the Context class to allow RunTimeTyped storage rather than just Data storage, so that the scene plug could be stored without encoding as uint64_t, but decided against it. Because RunTimeTyped (or GraphComponent, or Plug) doesn't have a copy() method, it would make implementing the ownership semantics the Context requires impossible, or would require documenting special cases for non-copyable types. It seems preferable to have one nasty isolated cast for an isolated use case than to confuse an API which is central to everything.
Added context argument to FilteredSceneProcessor utility methods.

Since we already have access to the context, it doesn't make sense to pull it out of thread local storage again.
Removed unnecessary Context construction in Prune and Isolate.

Also improved documentation in FilteredSceneProcessor to reduce the chance of doing it again.
Implemented UnionFilter::sceneAffectsMatch().

UnionFilter is now compatible with SetFilter inputs.

Fixes #92.
Merge pull request #851 from johnhaddon/setFilter

SetFilter