1) Tests for "end game from user exit" functionality 2) bug fixes

#### What's this PR do?
This PR: 
1. Sets up tests for the "end game from user exit" functionality of competitive story games. Creates Game 1, then invites a player from Game 1 to Game 2, checks the state of both gameDocs and players from both games. 
2. Fixes a bug in the `_endGameFromPlayerExit` function. 

#### Where should the reviewer start?
Check out the `test/EndGameFromUserExit.js` function, then the bug fix in the `SGCompetitiveStoryController.js`. 

#### How should this be manually tested?
Run `npm test'! 

#### What are the relevant tickets?
Closes #303. 

This looks like one of those cases where trying to adhere to the idea of pure functions in functional programming could help. When you look at `betaJoinGameTest` and see `gameId` you have very little idea of where that value came from. To get a better grasp of what's going on in `betaJoinGameTest`, you also need to understand the context of all the tests that are calling that function.

I imagine it's just a matter of adding a `gameId` parameter: `betaJoinGameTest = function(_gameId, _phone)`. But yea, if it looks like it's gonna be too much of a refactor right now, we can save it for later. Maybe just create a GitHub issue so we can remember it.