changes User getGames promise to stay around forever so that subsequent calls get resolved immediately.
renames _pendingPromises to _promises to indicate that it can also contain finished promises.  resolves
the relevant pending promise, if any, in /game handler.  updates getGame and getGames to know that
_games will always be an array (having it sometimes null was complicating things too much, which is
part of the reason for just keeping the promise around in getGames).

getGame still deletes the promise once it's finished, so that calls after it's finished get a new
promise and the User tries to get it from the server again.