BattleRoom refactor to support tournaments better

Generalized the BattleRoom constructor function (and the functions that
call it) to pass an arbitrary `options` object instead of a boolean for
`rated` only. Also, removed mention of `parent` or `parentid` in the
constructor and functions because it's no longer needed or used.

Added support to the BattleRoom constructor to let it process tournaments
properly. Now, instead of having the tournament forcefully override the
BattleRoom.win function, the BattleRoom itself can handle the callback for
when a tournament participant wins the battle.

Added a check for tournament battles to prevent users who aren't part of
that specific tournament battle from entering the battle.
Merge pull request #1249 from ascriptmaster/tourney-join-lock

Prevent voices from entering tournament battles as a battler