Add recovery parameter to /dexsearch

Returns all Pokemon that learn a recovery move (excluding rest)
Update Random Battle

- Fix #1226
- Remove HP Electric from Empoleon
- Prevent Drain Punch with Superpower
Revert "Room's title should be used instead of ID"

This reverts commit 4971ce230e1684e2f53c41555ce518bfb95e43d4.
Ban Protean in Almost Any Ability
Modify Lopunny in Random Battle

Added the possibility of Klutz + Assault Vest + Switcheroo to
perma-taunt an opposing Pokemon.
Support modding BattleSide and BattlePokemon instances
In scripts.js, ´side´ and ´pokemon´ are now reserved keys for objects containing their respective moddded scripts.
Fix crashes for vanity groups
Show fresh battles in Watch Battle list
Fix RAM usage

The room expiration time was broken and always set to 40 minutes;
this fixes it so it expires in 10 minutes when empty.
Update UU bans
Support 64x modifiers for Stealth Rock damage
Hidden Type: handle forme change mechanics in scripts.js
This would fix Aegislash, as well as Shaymin-Sky's reversion to Land forme if they were allowed in the format.
Update !cap

- Third link is now the new CAP Metagame subforum instead of the old BW thread
- Fourth link is now XY CAP teams instead of BW CAP teams
Merge pull request #1234 from sparktrain/patch-1

Update !cap
Merge pull request #1233 from Slayer95/battlething-mod

Support modding BattleSide and BattlePokemon instances, and use in Hidden Type
ResourceMonitor: Improve log function

ResourceMonitor updates now show up in staff room instantly, and
there's a new logHTML function
Add new Inverse bans
Allow /roomauth to be viewed from any room
Merge pull request #1235 from sirDonovan/roomauth

Allow /roomauth to be viewed from any room
Refactor identifying rooms

This introduces Rooms.search(), which is used whenever a command
wants a room, and allows a room to be identified by ID, title, or
alias.