Fixed PyQt circular references within GafferUI.Menu.

With PySide there appears to be no problem at all with the existing menu code, but PyQt was keeping the slots connected to the menu actions alive forever, even following garbage collection. Since the slots had references to arbitrary curried commands in them, this could actually leak significantly. For instance, the File->OpenRecent menu items contain references to the current script, and this PyQt bug meant that the ScriptNode would never be destroyed. This has dire consequences for proper application shutdown.

It seems that we _can_ trust PyQt to properly manage the lifetime of the QMenu and QAction objects we create, so rather than curry things into the slots called by signals, we now store the menu definitions on the QMenus themselves, and the menu item definitions on the QActions themselves. This also allows us to reduce the number of arguments to __build and __actionTriggered (formerly __commandWrapper).

Fixes #397 for real - previously it was fixed for PySide builds but not it is fixed for PyQt as well.
Added check for zombie ScriptNodes in gui app shutdown.

If I have to go down that rabbit hole again, it'd be nice to have a torch this time.
Removed rogue ScriptNode constructors from UI components

These didn't actually trigger the warning just added to gui shutdown, because the node was deleted immediately upon construction, but there certainly was absolutely no need whatsoever to go creating a new object just to call a static method on it.
Fixed crash caused by File->Quit menu item.