Stat overhaul

This introduces the following:
  - Foul Play no longer uses the opponent's ability and item against the opponent.
  - Confusion no longer uses your ability and item against you.
  - Modifiers for stats in damage formula are now chained.
  - onModifyStat events now affect the modifier and not the stat directly.
  - Several abilities are now implemented correctly.
  - Wonder Room is now implemented correctly.
  - ignoreNegativeOffensive and ignorePositiveDefensive now check the Pokemon's boosts instead of comparing it's modified and unmodified stats
  - useTargetOffensive and useSourceDefensive are now implemented correctly.