Fix gen 6 legends with less than 3 perfect IVs

Gen 6 legendary Pokemon must have at least 3 perfect IVs.
Update check for 3 perfect IVs

"Undiscovered" egg group Pokemon caught in the wild in gen 6 must have
at least 3 perfect IVs.
Allow Sturdy with recoil + recovery in Random Battle
Update Middle Cup link in /om
Gen II: Draining moves miss against substitutes
NEXT: update move accuracies

Updated some more moves to multiples of 10 for consistency.
Some tweaks to private rooms

- Allow /warn in hidden rooms, as they can be used in battles which are subject to global rules
- There is no command /secretroom
Update /modjoin to parse /hiddenroom
Merge pull request #1376 from Freigeist/patch8

Some tweaks to private rooms
Merge pull request #1377 from Tempoanon/patch-20

NEXT: Update move accuracies
Fix early failure in User#disconnectAll for multiple connections
The ascending loop over the connections array wasn't appropriate, given that Connection#destroy mutates that array.
Battle#resendRequest's argument is now a connection, rather than user
- The higher specificity saves bandwidth and suppresses a client crash when another user connection joins the battle.
Tweak Smeargle's Random Doubles Moves
Fix support for multiple connections in the same battle
The request would not be sent to the connection as it wasn't in the room.
Fix logs sent to the first connection of a user joining a room
The message reporting their join would be sent twice.
Prevent battles between offline users from starting
There is no reason to allow them, while doing so allows some race conditions where the first connection of a player joining a battle room doesn't receive their request.
Merge pull request #1378 from Audiosurfer/patch-1

Tweak to a Random Doubles Movepool
Merge pull request #1379 from Slayer95/users

Fix several issues with users's joining and leaving
Gen 2: Correct sandstorm damage

Sandstorm damage is the double in gen 2.
make /privateroom more general. allow different privateroom settings