Addresses #272 - adds two new nodes, CustomAttributes and CustomOptions

- two new nodes derive from Attributes and Options respectively
- updated the UI files for the old nodes to attempt to clarify that they are a base class
- moved the detailed usage notes to the new UI files
 - note: I don't think the nodeDescriptions are picking up properly. Not sure if that's me or gaffer. I note that the NodeEditor lists the nodes as being of the base type... so maybe i've not quite got that right
Replacing old 'Attributes' and 'Options', with the new CustomVariants
fixing typo
Improved platform naming in package filenames.

The SCons PLATFORM variable isn't very user friendly - "darwin" for OSX and "posix" for Linux. This introduces a new GAFFER_PLATFORM variable with values "osx" and "linux" and uses them when building release packages.
Added additional types to the CompoundDataPlug new plug menu.

Fixes #522.
replacing the python node definitions with c++ ones.
updates the test cases for new Custom* nodes
updates the test cases for new Custom* nodes
fixes missing prefix
Added python subclassing ability to Serialisation::Serialiser.

Fixes #520.
Fixed bug in searchable Menus with no entries.

Fixes #527.
Merge pull request #529 from johnhaddon/pythonSerialisation

Added python subclassing ability to Serialisation::Serialiser.
Merge pull request #530 from johnhaddon/emptyMenu

Fixed bug in searchable Menus with no entries.
Merge pull request #525 from johnhaddon/compoundDataPlugMenu

Added additional types to the CompoundDataPlug new plug menu.
Merge pull request #524 from johnhaddon/packagePlatformName

Improved platform naming in package filenames.
Merge pull request #523 from bentoogood/customAttributesOptions

Custom attributes/options
Bumped version number and updated Changes file.