Fixed NodeGraph keypress handling.

Several things were going on here :

- The QGraphicsWidget used internally in GLWidget (since the overlay code was added) was swallowing cursor key events at the QAbstractScrollArea level. It uses the key events to scroll the area around, even when there are no scrollbars and there is no scrolling to be done. This was preventing the Up/Down keys from entering and leaving Boxes. The NodeGadget could have got the events still if it was connecting to the GLWidget events directly but it was instead connecting to events one level up in the parenting hierarchy, after they'd been swallowed.

- NodeGraph was grabbing focus when the node menu was closed, but wasn't grabbing focus back onto the GLWidget, but rather onto itself. This meant that hitting Tab again wouldn't reopen the node menu, because the EventFilter was listening for tab on the GLWidget.

This is fixed in several ways :

- NodeGraph connects to event signals on the GLWidget directly. This means it gets keypresses before they're swallowed.
- NodeGraph grabs focus onto the GLWidget when the node menu is closed.
- GLWidget works around QAbstractScrollArea behaviour, preventing keypresses from being swallowed anyway. Strictly speaking this isn't necessary given the first fix, but it will prevent similar problems for other users of the GLWidget in the future.

The nice thing about this change is that I managed to get rid of the nasty event filter that was being used in the NodeGraph to catch the Tab keypress, so at least things have got a little tidier there.
Disabled "Remove input" menu item for read only plugs and uis.
Disabled Box promotion menus on read only UIs.

Fixes #604.
Disabled ganging menu items for read only PlugValueWidgets.
Fixed StandardNodeUI.setReadOnly() to properly affect plug labels.

Before the plug labels were providing a loophole through which editable versions of the menus were available.
Merge pull request #607 from johnhaddon/boxFixes

Box fixes