Image Transform Node with sub-pixel filtering.

* Refactored GafferImage::Filter to have a better interface whilst removing the need for the construct() method.
* Changed the Sampler to use the new Filter interface. Filters now have to be passed into the Sampler's constructor.
* Fixed bugs in the Sampler that:
   - Caused incorrect results with negative sample areas.
   - Samples required to compute a filtered sample were being clamped to the sample area even when the resulting sample was inside.
* Modified the Reformat node to use the new Filter and sampler interface.
* Updated bindings for the Sampler and Filter classes.
* Added filtering support for the ImageTransform node.
* Added test cases for the ImageTransform node.

Note: The box filter is broken when rotating an image where the data window extends into negative coordinates. A failed test case confirms this and will be fixed soon...