Fix Phase non-removal under rare conditions, interactions between freeze/reactivate enchantments in Player/Phase. Fix issues with potion flags, scroll stacks disappearing and 'Weight Carried' stat not updating.

Last (hopefully) PE timer/Phase fix. When everyone is kicked off during a server reboot, they are saved in the state they are in; e.g. if a player is phased out they are kept that way. When the server reboots it tries to log the user off, but because the spell table in system.kod isn't loaded yet it can't remove the Phase enchantment as user.kod uses FindSpellByNum which needs to access this table. Instead, it now runs through the user's enchantments (possibly a fraction of a second slower than the spell lookup?) and checks for Phase by class. This successfully finds and removes the Phase enchantment during server reboot.

Fixed up a bad interaction due to my previous attempts at fixing the Phase/PE issues. Also included a timer check in ReactivateAllEnchantments, so in the future any incorrect interaction with enchantments switching between integer and timer gets caught and logged with meaningful information.

Included a fix for stacks of scrolls being deleted when one fails (failure set piHits = 1 if the player passes the int check to not destroy the scroll), fixes to reagent bag and potions not updating the Weight Carried stat and a new function to reset all potions to the correct object flags (currently ~2900 potions exist that need to be targeted). Also cleaned up spacing and grammar in all these files.

Note on that potion function: all it will do is check viobject_flags for potions and if they are set at 4112 (can be picked up, can be applied via target) will set them to 16 (can be picked up). For a short period we had all spell items set at 4112 and I think when potions and scrolls were returned to 16 there was no way for it to remove a flag already present (as opposed to adding a new one during RecreateAll).