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. 

For example, the `.betaJoinGameTest` function:

```javascript
exports.betaJoinGameTest = function(_phone) {
  var request;
  var phone = _phone;
  before(function() {
    phone = messageHelper.getNormalizedPhone(phone);
    request = {
      body: {
        phone: phone,
        args: 'Y'
      }
    }
  })

  it('should emit game-updated event', function(done) {
    emitter.on('game-updated', function() {
      done();
      emitter.removeAllListeners('game-updated');
    });

    // Join beta user to the game.
    this.gameController.betaJoinGame(request, response);
  })

  it('should update the game document', function(done) {
    this.gameController.gameModel.findOne({_id: gameId}, function(err, doc) {
      var updated = false;
      if (!err && doc) {
        for (var i = 0; i < doc.betas.length; i++) {
          if (doc.betas[i].phone == phone && doc.betas[i].invite_accepted) {
            updated = true;
            done();
          }
        }
      }

      if (!updated) assert(false);
    })
  })
  it('should send a Mobile Commons opt-in to Beta(' + phone + ')')
  it('should send a Mobile Commons opt-in to Alpha')
};

```