Made GafferImage::Format::getDisplayWindow() return const reference.
Fixed FormatData serialisation.

It could never have worked. Also moved the implementation of FormatData into its own file. Over time the Format class needs to be slimmed down until it's just a simple maths class - all the default format stuff would make more sense on the FormatPlug.
Tidied up Format.h.

- Moved inline implementations into GafferImage/Format.inl.
- Fixed include guards (GAFFERIMAGE_ not GAFFER_).
- Removed unnecessary friend declaration.
- Renamed m_aspect to m_pixelAspect to clarify that it isn't the aspect of the display window itself.
Added space conversion methods to GafferImage::Format.

Because Gaffer uses a Y-up coordinate system and Cortex and OpenEXR use Y-down, it's handy to have this documented somewhere and to have some methods for easily converting between coordinate systems.

Also added a todo in ImagePrimitiveSource.inl, to fix the display window computation and use these new convenience methods to make the data window and channel data match appropriately.
Improved GafferImage::Display node hashing.

Prior to this, the hash for every tile in the image was changed any time a new bucket arrived. This meant a lot of churning in the cache and a lot of unnecessary computation in the viewer, as exposure, gamma and lut were repeatedly being reapplied to tiles which hadn't changed but had new hashes.

This improves viewer responsiveness approximately 2x during an interactive render.
Optimised ChannelDataProcessor::channelEnabled().

There was no point getting the input channel names - it would be a mistake to call channelEnabled() with anything other than an existing channel anyway.

This change alone improves viewer responsiveness approximately 1.5x when receiving a render.