Support temporal ability changes

- Implement 'abilitychange' volatile to keep track of any temporal ability acquired.
- Skill Swap activation no longer requires the abilities as arguments. This is relevant as in-game they are not revealed if the move user and the target are allies.

Fixes https://github.com/Zarel/Pokemon-Showdown-Client/issues/250
We are currently using short-circuiting in <code>client-battle.js</code>; so I assumed that was the convention :|