This allows the GUI to be responsive while the user functions execute. This is only at the level of
the GUI and not the relax interpreter. The execution lock is also acquired to lock up the GUI while
the user function executes.
A special daemon thread called self.gui.interpreter has a queue object so that a series of user
functions can be queued up if needed. The program now also exists with wx.Exit() call to prevent
unhandled exceptions occurring in this daemon thread.