Exception handling for cylc GUIs

When you don't have access to the stderr (or you're simply not looking at it) a crash in PyGTK can be very silent - things may go on as before, but some internals may be totally broken.

This uses Python's sys.excepthook customisation to launch a dialog with some traceback and exception text. `cylc gpanel` now has similar code that modifies the widget directly.

@hjoliver, please review.