Added a generic Switch node.

This is templated on its base type, and implemented in a totally generic way so it should in theory work with any sort of ComputeNode as it's base. The intention is to use it to implement a SceneSwitch and an ImageSwitch, but in this commit the functionality is tested with simpler types.
Renamed SceneContextProcessorBase to SceneMixinBase.

This is in preparation for using it with Gaffer::Switch to produce a SceneSwitch. The new name reflects its ability to be used with any of the Gaffer mixin classes - this isn't quite the case yet but the upcoming commits to implement SceneSwitch will correct that.
Fixed Switch::affects() so that indexPlug() affects the output.
Added a SceneSwitch node.

This simply mixes together SceneMixinBase and Switch and sits back and watches the results.
Separated bindings for Scene mixin classes.

GafferSceneModule.cpp takes way too long to compile - we need to continue splitting out sensible little chunks into their own files.
WIP.