Overhaul the stat system and implement chaining

- Add Battle.prototype.chain to chain modifiers
- BattlePokemon.prototype.getStat is passed different parameters and no longer runs the ModifyBoost event nor the ModifyStat events.