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.
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.
Added ImageTimeWarp, ImageContextVariables and ImageSwitch.

These are implemented using the same mechanism as SceneTimeWarp, SceneContextVariables and SceneSwitch - simply mixing in functionality from the generic classes in the Gaffer module.

Deprecated GafferImage::Select as it is now superceded by ImageSwitch - it remains in the build for backwards compatibility but has been removed from the node menu.