Refactored ImageNode hashing for improved performance and clarity.

The refactoring has helped my understanding of things in hunting down a hash bug affecting disabled nodes downstream from a Display. It now matches the SceneNode scheme much more closely, with the following improvements :

- No longer calls ComputeNode::hash() only to overwrite it in the case of disabled nodes - performance improvement.
- Much simpler implementation for ImageProcessor::hash() and ImageProcessor::compute().
- No longer appends enabledPlug() to the hash output of all plugs (bugfix).
- Clearer documentation and rules for derived class hash*() methods. Before they would need to call the base class implementation if they were derived down a few levels, but not if they were derived from the base class. Now they must always call the base class implementation unless wishing to pass through a hash.
- Clear documentation of the effects of enabled() and channelEnabled() with regard to not calling any of the hash*() or compute*() methods.
Fixed ImagePrimitiveSource hashing bug.

This was somewhat hard to track down, in that it only appeared when an ImagePrimitiveSource derived node was connected to a disabled node. The ImagePrimitiveSource was failing to hash in the tile origin and channel name, but this was going unnoticed because it turns off caching for its output plug, so the hash wasn't used to do cache lookups which would show the problem. When it was connected to a disabled node, the hash was passed through the disabled node, but the data was read via a pass-through compute() on the disabled node, on a plug which has caching enabled. That caching then fell foul of the hash bug. Just putting the tile origin and channel name fixes the hash and therefore the bug.

This does raise an interesting question though, in that we don't really want caching to start happening just because of a pass-through, but that is a larger question for the future...

Fixes #420.
Fixed bug in Constant channelNames hash.

It was hashing in the color plug for no reason.
Fixed Reformat channelNames hash.

It is now a perfect pass-through, matching the compute implementation.
Fixed ImageTransform channelNames hash.

It is now a perfect pass-through, matching the compute implementation.
Tidied up GafferImage #includes.

They were frequently out of order with respect to the coding convention, and there were a lot of unnecessary includes.
Fixed FormatDataTypeId declaration.

Also removed totally unnecessary Serialisation registration.