removes server.connect() line from client main - it connects automatically

init code doesn't have to worry about events happening before it has
added handlers for them because of the way Javascript does events - if an
event happens while the init code is executing it gets placed in a queue
until the current code is finished.
moves Application and Lightsquare (ui) init to server.ConnectionOpened handler in client main
adds call to /request/challenges in client Application constructor

this solves the problem of the server not knowing when to send initialisation
messages because browsers re-use websocket connections (solves it by just
manually requesting the initialisation data currently needed)
adds return true; to server.ConnectionOpened handler in client main so that Application and ui aren't fired up again if the connection is closed and then reopened
adds game link to main links on _app.NewGame in Lightsquare
gives server User a reference to the Application

this is to give the User more control over how messages from the client are
handled; e.g. instead of just relaying /challenge/create through its Publisher,
it can handle that message itself, and call _app.createChallenge.  It can then
handle Challenge.Accepted and add the resulting game to its currentGames list
in the session.