CardLayout Discarded

I decided to discard CardLayout due to issues with managing threads.
With the CardLayout, all panels were created at program initialization.
Some of these panels have threads that should only run while the panel
is visible. It is very difficult to manage these threads in a non-static
manner. Since it is good practice to avoid static as much as possible,
it required a rewrite of how the game handles the creation and
maintenance of panels.

In a nutshell, panels are created when they are needed (eg., clicking on
a button) and keep a reference to themselves and to the kernel. Panels
are removed and added to a Screen (which is a JFrame under the covers),
which is then revalidated and repainted. There is a slight flicker when
this happens, but that can be fixed.