These changes revert some of the code of previous commits. The recently introduced pipe editor and
results viewer windows Delete() methods have been deleted. Instead the Close() methods are called
in the tearDown() method to unregister the windows from the observer objects, followed by a
wx.Yield() call to flush the wx events, and then the clean_up_windows() GUI test base method is
called within a wx.CallAfter() call. This avoids the racing induced segfaults in the GUI tests.