* [Cleanup] Gender constants cleanup
# Notes
- Convert to a `Gender` namespace using `constexpr`.
- Cleanup spots where we were using magic numbers for gender values.
* Cleanup
* [Commands] Overhauled #npcedit.
- Added missing columns like untargetable, show_name, exp_mod, etc.
- Put stats in order of column appearance in table within help message and within code.
- Converted StringFormat to fmt::format.
- Added a GetGenderName() helper method.
- Prettified response messages of nearly every #npcedit option.
All tested and ready to go.
Would like input about possibly changing some of the command arguments to match the table column names more closely, example being "spell" should be "npc_spells_id".
* Cleanup.
* Fix indentation.
and NPCs wearing gear in non-weapon slots.
The illusion thing: Not sure why, but te opcode for BulkZoneSpawn doesn't
display the tree/object illusions. I did notice that even OP_Illusion gets
rejected by the client if sent before Client_Ready. Maybe that is why. The
BULKSpawns cannot be sent that late, I tried moving it in the sequence but
it never did the illusions correctly, at any point. So, we new new the
single spawn OP code for PCs with those illusions. This works.
The NPC gear thing. Same story with BulkZoneSpawn, Not sure why. The data
is sent correctly. So now we update the client zoning in (only them) with
what the NPCs are wearing. Every othe client already is up to date.