Better documentation of /highlight
Implement /refreshpage command
Capitilize 'pokemon' in Sky Drop message
Support for config/formats.js
Better error messages in tools.js
Fix race conditions in writing logs/lastbattle.txt

This fixes two race conditions in writing lastbattle.txt:

1) Previously, there could be several calls to `fs.writeFile` on
   lastbattle.txt queued at the same time. The order these would run in
   was undefined, so lastbattle.txt did not necessarily represent the
   actual last battle at any given time.

2) Since `fs.writeFile` clears the file before writing to it, it
   was possible to end up with an empty lastbattle.txt if the process
   terminated while the call to `fs.writeFile` was being processed
   asynchronously. This commit fixes the issue by writing to a file
   named logs/lastbattle.txt.0 and then renaming that file to
   logs/lastbattle.txt. On POSIX, `rename` changes the target
   file's link to point to the soruce file (which is an atomic
   operation). Thus, this removes the possibility of ending up with
   an empty logs/lastbattle.txt on POSIX.

   Unfortunately, on Windows, `rename` will throw an error if the
   target file exists, which it will. In case of an error, this
   code still writes to logs/lastbattle.txt, but in a way that
   has a possibility of a race condition. As such, race conditions
   in writing to logs/lastbattle.txt are still possible on Windows, but
   they are fixed on POSIX at least.
Fix Gravity and Smack Down.
Report HP as pixels
Scripts can now override the Battle prototype
(well, pseudo-prototype, I've yet to refactor Battle to actually use
prototypes)
Add Darmanitan-Z as an alias.
Fix more chainbreeding learnset check bugs
- Level-up moves can always be chainbred
Increase chance of /kill being logged

Despite the call to `rooms.lobby.logEntry`, use of /kill was not
actually being logged because the process terminated before the
log entry was written to the file. This commit introduces a 250
millisecond delay before killing the process in order to give the
log a chance to be written.

The reason we introduce a delay rather than synchronously wait for
the log to be written is to ensure that the server is actually killed
(e.g. in case of a problem writing the log).
Even better (but more complex) /kill implementation
Fix Tools-modifying Scripts
Specifically, this fixes init scripts as well as command-line random team
generation
Berries can now activate between hits of multihit moves
Multi-hit moves now stopped by Sleep
(this is an obscure interaction with Effect Spore)
Add feature to log user stats periodically
Prevent Smeargle from having Chatter or Struggle in its moveset, as neither can be Sketched.
Fix Smeargle's moveset in Challenge Cup.
Merge pull request #5 from Zarel/master

abc!