Remove `localsysop` setting

The `localsysop` setting is dangerous and allows an attack where an
attacker constructs a malicious webpage that makes a connection to
`localhost` on the appropriate port and then takes over the server.
Since the dev console can be used from `localhost` by default, this
would include the ability to run arbitrary code on the server computer.

Any server operator who browses the internet on the same computer
where she or he hosts the server (such as some small-time server
operators) would be vulnerable to having their computer taken
over merely by visiting any webpage on the internet under the
control of the attacker.
Fix Gems and spread moves
Gems now boost all hits of a spread move.

This introduces a new event BasePowerMultiplier, so that gems actually
activate at the right time now.

The name is similar to basePowerModifier but they do the same thing
anyway. We should probably figure something out for their naming,
though.
VGC 2013 out of dev (finally)
Make sure Gems don't activate with Status moves.
Gem activation conditions fix
Fix multiplier debug message
Refactor when accuracy is calculated
Accuracy is now checked after immunities and certain other effects,
rather than before.
Order the TryHit event correctly
(This isn't perfect yet; Magic Coat/Bounce uses a different event,
which we'll need to correct later.)
Fix SR for new move hit system
Specifically, the TryFieldHit event no longer exists.

Instead, Magic Bounce has separate event handlers for TryHit and
TryHitSide.

This also fixes it so Magic Coat/Bounce happen before ability
absoption (like Water Absorb).
Make sure ability immunities go last
Specifically, abilities like Lightningrod should activate their
absorption effects after Protect, Magic Bounce, or anything like
that.
Fix Forewarn message
Ugly hack to fix burn+Explosion damage
Currently, if a burned Pokemon explodes in doubles, all targets except
the first will take full damage, because it's fainted (and no longer
burned) by the time those damage calculations are done.

The correct solution is to do all damage calculations before dealing
any damage, which I will do someday. Today is not that day.

Today, we move fainting the Explosion user to after damage is dealt.
Which, aside from making the faint order wrong, doesn't really have
any other consequences, and is better than the current buggy
damage calculation.
Fix Substitute for new hit system
Move results passed up to useMove
Move results are now passed all the way up to the useMove script.

It's now possible to tell from within useMove whether or not the move
succeeded.

This fixes a bug where successful Memento and Healing Wish were
considered to have failed and so didn't cause the user to faint.
Fix gem activation conditions
Now only moves that have a base power should activate gems.
Fix Heal Bell
Fix Outrage+Substitute
Fix Gems with Hidden Power
Minor Natural Gift refactor
I'm calling it a refactor because I'm pretty sure it doesn't actually
change anything. But right now gems require a new code guarantee:
basePowerCallback shouldn't return false under normal circumstances.

(Some of them still do return false, but only under error conditions)
Fix learnset validator for Baton Pass Durant