Correct Metronome Implementation

Fixes an abusable bug with multi-hit moves
Merge pull request #360 from V4Victini/metronome

Correct Metronome Implementation
Use RNG for getRandomSwitchable
Fix three-move Jolteon
Expire battles for inactivity
Now battles will expire after 40 minutes of inactivity even if there
are people in the battle.

You can still keep the window open client-side after the expiration,
but you won't be able to talk in it anymore.
Fix crash in Life Orb
Update aliases.js
Merge pull request #364 from nunuchu42/patch-1

Update aliases.js
Room auth overhaul
Room auth now match regular auth much better. There are now room voices,
room drivers, room mods, etc. They correspond to the global versions,
except with their powers restricted to the current room.

Roomdriver no longer gets /roomvoice; it's now roommod and higher.
Implement new Other Meta of the Month: Ability Exchange
Add new October Seasonal: Octoberfest
Improve promote on offline users
Add checkAbilities function to scripts
This function checks the selected abilities against default abilities.
It's used on Ability Exchange.
Merge branch 'master' of http://github.com/Zarel/Pokemon-Showdown
Prevent spoilers from being used in lobby
Suppress a bug with IP not showing up
For some reason, IP doesn't show up when mods use /whois on themselves.

I honestly don't understand the current permission system all that well,
so I'm just going to suppress the bug like this for now.
NU is having a suspect test
Don't show roompromote message if no change happened
Because there's no auth necessary to change a user from deauthed to
deauthed, regular users could make the message appear.
Admin and Leader are now global-only
It is no longer possible to promote someone to Room Admin or Room
Leader.
Fix Trace Message

Say that Trace has copied the ability before having the copied ability
take effect