Main: shutdown() is called on gui close
LoginManager: Added debugResetAllPasses
Main: Shutdown now uses a multithreaded lock/wait for shutdown.
The complexity is needed because it's possible for a thread to call
shutdown and have to wait for ITSELF to terminate.  This results in a
deadlock and a hung application.
BackgroundMonitor: Made constructor/stop thread-safe
Main: Frames now explicitly run in their own threads