GafferSeed

appleseed (http://appleseedhq.net/) support for Gaffer.
Works with appleseed's master branch.
Almost all of it is new code. The only changes to Gaffer itself are in SConstruct and startup/gui/menus.py

Minimal instructions:
---------------------------

- $APPLESEED must be defined and point to appleseed's directory.
- appleseed's binary dir must be on the $PATH.
- appleseed's lib dir must be on the linker path.
- appleseed's python module is only needed to run IECoreAppleseed tests (inside Cortex).
- Uses OSL shaders. They are found using the $APPLESEED_SEARCHPATH env var.
- There's a basic OSL shaders lib (work in progress) for appleseed that can be used in Gaffer here: https://github.com/appleseedhq/appleseed.shaders.
- Only supports rgb and rgba outputs, interactive, batch/exr and batch/png.

Gaffer draws a hard line between non-UI and UI functionality, hence all the GafferSomething/GafferSomethingUI module pairs. Introducing a dependency on a UI module from a non-UI module is a bit of a no-no.

The `ArnoldLight` and `RenderManLight` nodes both provide a `loadShader()` method to allow a light to be set up - I feel like we need the same thing here for `AppleseedLight`. Presumably implementing that in C++ would be a bit of a pain, so perhaps it can just be injected from Python? If you created a `GafferAppleseed/_AppleseedLight.py` file, it could define a private `__loadShader()` method and then inject it with `AppleseedLight.loadShader = __loadShader()`.