Massive refactoring; states now exist on a stack, and can be pushed or
popped off; all states are heap allocated; networked multiplayer is
now separate from local (in that it won't switch into local if
connection fails or the other person quits), and old cruft from before
MultiplayerMenu was added is gone; and multiple games can be played without
restarting the client. Also fixed MultiplayerMenu's inputText not
being empty to begin with.