Added the MultiSelectionMenu widget as a replacement for the SelectionMenu widget. The MultiSelectionMenu adds multiple selection, pythonic accessors and operators, cascadeable menus. A decrecation warning has been added to SelectionMenu.
Updated the .gitignore to include VIM temporary .swp files.
Changed the EnumPlugValueWidget and the FormatPlugValueWidget to use the MultiSelectionMenu.
Added the extension .tmp to .gitignore.
Hid the "enabled" plug from all ImageNodes to bring the interface inline with the scene nodes. In the future it may be moved to a separate tab?
 - Updated the MultiSelectionMenu to use "getSelection" and "setSelection" rather than "getSelected" and "setSelected"
 - Fixed a minor bug.
 - Added the appendToSelection() method.
 - Updated the test benches.
 - Updated the EnumPlugValueWidget and the FormatPlugValueWidget
Fixed a small bug that forced one selection even when a allowMultipleSelection == True
Added the ChannelMaskPlug.
Added the ChannelMaskPlugValueWidget.
Added test benches for both the plug and widget.

This plug and widget provide a way of choosing a subset of channels from the channels available from an input's channels. The plug provides a method for intersecting it's current selection of channels against a vector of other channels.
Added the static channelIndex method to the ChannelMaskPlug along with test cases and bindings.
Removed an unwanted print statement in the ImageReaderTest case.
Merge branch 'ImageReaderTestCleanup' into ChannelMaskForNodes
Fixed a bug where a selection wasn't being kept when alwaysHaveASelection==True
Changed the ChannelMaskPlugValueWidget to allow no channels to be selected.
Picking up the downstream changes that allow a ChannelMaskPlugValueWidget to have no channels as a selection (for testing purposes)

Merge branch 'ChannelMaskPlug' into ChannelMaskForNodes
Included the use of the ChannelMaskPlug into the ChannelDataProcessor base class to add a widget that allows only particular channels to be modified. To implement this a new method called channelEnabled has been added to the ImageNode to provide derived classes a way of dictating which channels are enabled. All image nodes have been brought inline to use this convention. A few TODOs in the Grade node that relied on this feature have been completed and removed as a result.
Made suggested changes.
Corrected todo tag.
Changed the channelMask bindings to allow an IECore.StringVectorData to be used as the input.
Changed the ChannelMaskPlug, it's UI and test case to use "." as the separator for layers and their channels.
Required update for testing
Merge branch 'ChannelMaskPlug' into ChannelMaskForNodes