removes ClientConnected event and _user.ClientConnected handler from server User

the event is unreliable because browsers re-use the connections, so there is no
point using it for anything
changes server Challenge to fire Accepted event, makes Application.createChallenge public and moves /challenge/create handler to User so that User can work with the Challenge
corrects _app.createChallenge call in server User - needs to pass itself as the owner
corrects reference to data.game in Application Challenge.Accepted handler
changes PageCache.createPage to throw an exception if there is already a page with the given url
moves /game/spectate and /challenge/accept handlers to server User; adds/removes appropriate methods on Application

also moves Application.createChallenge up nearer the top of the file because it's changed to public
rewrites code to load/store server User to/from session and database, and adds handler for /request/games