NEXT: Fix bug in Magma Armor
NEXT: Flygon gets Sand Rush
Remove buggy Arceus-??? from Pokedex
Fix promote/demote command: Jump room owner rank

Now Leader demotions go straight to Moderator, and Moderator demotions go straight to Leader. The ranks are hardcoded because both the symbol and name are subject to change, so there is no safe way to get the symbols from config.

The command now works as intended, test:
Popsickles was promoted to Leader by Joim.
(Popsickles was demoted to Voice by Joim.)
Popsickles was promoted to Driver by Joim.
Popsickles was promoted to Moderator by Joim.
(Popsickles was demoted to Driver by Joim.)
(Popsickles was demoted to Voice by Joim.)
Popsickles was promoted to Driver by Joim.
Popsickles was promoted to Moderator by Joim.
Popsickles was promoted to Leader by Joim.
(Popsickles was demoted to Moderator by Joim.)
Popsickles was promoted to Leader by Joim.
Popsickles was promoted to Administrator by Joim.
(Popsickles was demoted to Leader by Joim.)
(Popsickles was demoted to Moderator by Joim.)
Fix typo in previous commit

config.groups[nextGroup] was mysteriously changed to config.gorups[nextGroup].
Refactor rank check: room only ranks do not interact with demote/promote
The function getNextGroupSymbol now takes an extra parameter to exclude room only ranks, which are defined in config.
The function will try to find the closest non room only rank with a safeguard against maliciously or badly crafted config.js to crash the server.
If no rank is found regardless of room only or not status, the first or last rank are returned accordingly.
This refactor allows getNextGroupSymbol's name to keep true to its functionality, while also providing a way to exclude crafted ranks for rooms or otherwise from the global demote/promote scheme.
More reliable active battle counter
NEXT: Fix lack of thaw message
Remove Thai zalgo
Change OM of the Month to STABmons
Move OU Monotype back to the challenge-only OM section, add STABmons as the new featured OM for August.
Merge pull request #283 from Joimer/omotm-august

Change OM of the Month to STABmons
Add new Seasonal, Average August
The previous month's Seasonal, Jolly July, has joined the orphan branch of old-seasonals while we welcome the new Seasonal for the month of August.
Improve balance and move choose in Average August

The balance right now allows to Kyogre's pirates to win more easily. Fix that and make sure moves are correct.
Implement STABmons using a Tools hack
Due to how validateSet and scopes work, STABmons needs either this 2 line hack or to copy basically all moveset check to formats, duplicating code, for it to work.
Fix obscure bug deroom commands
Sometimes a userid will be empty and it will crash the server. The first check on the function should be enough to be sure the room exists, this check further ensures that the command won't crash.
Re-add OU Monotype ladder

As per popular demand, OU Monotype ladder is kept as a regular OM ladder.
Add deletechatroom command
Add a command that deletes a chat room. It will first kick out all the users, try to delete all its data, and then write the result on the rooms json file, deleting it.
Fix confusion damage message
Gen 1: Fix partial trapping moves at 0 PP.

In gen 1, previous to this fix, when you used the last PP of a partial trapping move you couldn't continue the sequence and would be forced into Struggle. This fixes it.
Fix obscure bug in rooms

If someone tries to list the rooms in the exact moment it's being deleted and before chatRooms is updated, getRooms will crash. Additionally, a leftover empty room name will crash on construct when the index is still accessible but the data has been deleted, ie. it's saved as "null" if the room data is saved before the garbage collector ultimately destroys the deleted data.