Tournament systems.

- Introduced the concept of tournament systems: a system is a
  combination of pairing and a scoring system.

- Tournaments now store "events" in addition to the pairings. Events are
  an extensible meta-information mechanism.

- Factored out current hardcoded tournament logic into the "Arena"
  system. Arena is the default system.

- Added a "Swiss" system for FIDE-like tournaments. Pairing logic is
  based on the FIDE-sanctionned Burstein system.

- The Swiss system pairs players as soon as all games in the previous
  round are completed. Players get paired regardless of whether they are
  present in the lobby.
Merge remote-tracking branch 'psuter/topic/tournament-systems' into tournament-systems

* psuter/topic/tournament-systems:
  Tournament systems.
fix blocking lichess messengers
dangerous UI refactoring
Updated tournament FAQ to account for Swiss system

- Also, no points for quick draws in Swiss system.
Merge pull request #92 from psuter/tournament-systems

Updated tournament FAQ to account for Swiss system
fix threefold repetition
swiss tournaments WIP
Merge branch 'tournament-systems' of github.com:ornicar/lila into tournament-systems

* 'tournament-systems' of github.com:ornicar/lila:
  Updated tournament FAQ to account for Swiss system
more tournament tweaks - only remind playing players
more tweaks for swiss tournaments
Merge branch 'tournament-systems'

* tournament-systems:
  more tweaks for swiss tournaments
  more tournament tweaks - only remind playing players
  swiss tournaments WIP
  Updated tournament FAQ to account for Swiss system
  dangerous UI refactoring
  fix blocking lichess messengers
  Tournament systems.