make splash screen threadsafe

In order to do this, it was necessary to make things easier to pass
around. So, I completely destroyed the JESSplashWindow > SplashWindow >
JWindow inheritance hierarchy and turned it into a composition
hierarchy. SplashWindow creates and later destroys a separate JFrame
and JWindow, and JESSplashWindow creates a SplashWindow.