Fixed StandardGraphLayout test failures.

These were brought about by 812fafc4e4f32cda50362185350494851c76afec, because it meant that connections were being made to the "enabled" plug rather than the expected one. Disabling the creation of nodules for the "enabled" plug fixes the tests, and makes the behaviour of AddNode match all other nodes with "enabled" plugs, whereby that plug is not shown in the graph.
Refactored ConnectionGadget to allow for custom subclasses.

ConnectionGadget itself is now an abstract base class with a factory mechanism for the registration and creation of subclasses. StandardNodeGadget takes on most of the old functionality of the ConnectionGadget, matching the pattern we have for NodeGadget and Nodule.

At its simplest, the factory mechanism allows the customisation of styles and tooltips as illustrated in the test cases, but it would now be possible to implement entire new derived classes for totally custom drawing of connections.
Fixed slight jump when connections are first drawn.
Added class documentation for ConnectionGadgets.
Improved ConnectionGadget tooltip testing.
Merge pull request #731 from johnhaddon/connectionFactory

Connection improvements
Added MessageWidget.messageCount() method.

This returns the number of messages currently being displayed.
Made OpDialogue warning messages more prominent.

If an Op runs successfully, but outputs warnings or errors as messages, then these are noted in the completion message, and the details panel is expanded automatically. This is done even if the post execute behaviour states that the dialogue should close or return to the editing state.
Added OpDialogue.messageWidget() method.

This can be used to get access to the widget used to display messages from the op.
Added MessageWidget.forwardingMessageHandler() method.

This allows additional message handlers to be registered, so that messages can be passed on in addition to being captured and displayed by the widget.
Removed deprecated MessageWidget method usage from OpDialogue.

This also means that the result and error messages we append will make it to the MessageWidget.forwardingMessageHandler(), whereas with the deprecated methods they would not.
Merge pull request #734 from johnhaddon/opDialogue

Op warning/error display