Threading rewrite to remove use of unsupported cross platform threading update of the GUI.
When Viking is run on a real Windows system (i.e. not just under wine)
that has been built via the new cross build mechanism, it will lock up whenever a window is moved.
Remove all use of gdk_threads_enter() / gdk_threads_leave() and always use the main thread to update the GUI.
Thus make extensive changes to ensure updates are directed through gdk_threads_add_idle() or gtk_idle_add()
and protection to prevent use of data that has gone out of scope.