Redesigned the GUI interpreter object so that the thread is a separate object.
This is to allow both synchronous and asynchronous calls to the interpreter in the future.
Authored by: bugman 2011-08-30
Parent: [r14518]
Child: [r14520]