Move Socket.io connection to a module

That way, we'll be able to access the same socket connection from any
other module that requires this one. I think.
Split out the lobby stuff

It's mostly set-up stuff for now, but eventually the lobby may have its
own methods.  Either way, all of this stuff definitely doesn't belong in
the main module.