NEXT: nerf Bounce
Custom games now allow levels up to 1000
Moody is banned in Smogon Doubles
Fix for room links in /whois and /rooms
NEXT: change Scald
NEXT: buff Telepathy
Fix coloured output in /learn
Learnset checker: LC fixes
- pokemon can only learn level-up moves before their current level
  if they can breed
- gen 3 pomeg glitch implemented
- gen 3 pomeg glitch (and any other gen 3 trick) disallowed for gen 4
  abilities on pokemon that haven't evolved
More learnset checking for egg moves
- instead of a free pass, level-up moves from a level higher than the
  current level is checked as an egg move
(other ways of learning a level-up move are still available)
Learnset fixes when breeding with Tyrogue evos
- We introduce a new source type: C
- C sources aren't valid direct sources for moves, but they're valid when
  looking for breeding targets
- basically, they're a workaround to avoid a complicated chainbreeding
  algorithm
Consolidate CSS classes
Make sure Future Sight can begin against Dark-types.
Illusion fix:
- A previous change to Illusion + Mold Breaker interaction broke some UI
  for tracking Illusion status.
- This changes Illusion again, to have its clearing be hardcoded... which
  isn't a big deal, because most of the rest is hardcoded anyway.
- This also fixes a minor animation bug so Illusion clears before taking
  damage, not after
Very slightly refactor generation of formatListText

This was previously done in its own block, presumably because the
`formatListText` and `curSection` variables are not used outside
of the block. However, a block does not introduce a new variable
scope in JavaScript, so it makes more sense to use a function.
Implement logging of the lobby

If `loglobby` is enabled in the config file, lobby logs are written
to logs/lobby/yyyy-mm/yyyy-mm-dd.txt. Lobby logs are kept in their own
subdirectory of the 'logs' directory in order to avoid a namespace
clash with a format named 'logs', and also because there are many
reasons why one might want to copy the battle logs without copying
the lobby logs.
Randbats script updates

- Add a few move combinations to be prevented
- If legal, set Swift Swim for Pokemon with Rain Dance
Add better error message when mod file fails to load
Fix ReferenceError in gen3 Bide

The gen3 moves.js was throwing an exception on load because it
calls a function which does not exist. This commit does not properly
fix Bide, but it does fix the ReferenceError exception.
Allow `BattleScripts` to override properties of `Battle`

This allows functions defined as properties of `BattleScripts`
(i.e. in scripts.js) to override properties of a `Battle` object.
Fix debug message for overriding `Battle` properties