Connection improvements

This introduces a factory mechanism for ConnectionGadgets, allowing config files to customise the way connections are represented in the NodeGraph. It's possible to fully customise the connections by subclassing ConnectionGadget, but initially I think our main uses will be to create a StandardConnectionGadget and set a custom style and tooltip on it - this will allow us to have coloured connections based on plug type etc, and tooltips that are more useful than just the plug names. It should have applications in improving the readability of Jabuka graphs, along with whatever we settle on for #638.