* unlink quick facts from articles and store per-row
* new system allows generic and manual QuickFacts to coexist
* fill new table with data for zones
* if someone used static quickFacts .. uh .. good luck?
* the great unfuckening of user and displayName
* `login` is purely used as login with AUTH_MODE_SELF
* `email` may now also be used to log in (if the system knows it)
* `username` is purely used for display around the site, and lookups from web context
* both must exist because of external logins
a) that may be not unique
b) you may not want to share with the rest of the world
* todo: implement rename ( because of b) )
* update events and actions to match TrinityCore again
* removed events and actions have been kept but marked as deprecated
* general rewording and use of UIES for better readability
* move constants to respective classes
* reevaluate usage of UNIT_FIELD_BYTES1 content
* detatch from User and Util and move to its own enum class
* added definitions for all locales the 12340 client could in theory have
* this is incompatble with the Intl extension
* version bump and php requirement bump
* do not use NULL on item stats as it prevents searching for an amount of 0 (except for stats that certain items just cant have)
* fix stats from spells granting spell power and spell healing separately
* define and use some item subclasses
* fixed several deprecation notices and warnings from MySQL8, most notably:
- SQL_CALC_FOUND_ROWS: stopped using DBSimple::selectPage and query 'SELECT COUNT(*) ...' separately where needed
- ON DUPLICATE KEY UPDATE ... VALUES(): use row alias for new values instead of VALUES function
- boolean shorthands to long form (&& -> AND, etc)
* avoid using "echo" to write to CLI as php mistakes it for sent headers (see php-src #12303)
* as we are using fwrite now, errors are written to STDERR instead of STDOUT
* fixes an issue where reloading the config would cause "ini_set(): Session ini settings cannot be changed after headers have already been sent" to be spammed
* split completion table into it's subcomponents
* this should save some disk space as some keys and null fields have been optimized out and col sizes have been reduced
* sort ICC raid bosses first to last
* rework npc <-> chest loot linking
* difficulty is now directly stored
* should fix multiple issues where loot tabs had wrong difficulty or null title
* fixed skipping the value in oneline mode being interpreted as empty string
* fixed entering infinite loop in oneline mode, when passed value was invalid
* fixed displaying config hint, when passed value was valid
* spell: do not create a temporary copy of the spell.dbc, but merge serverside spells directly into aowow_spell.
This sidesteps a mysql issue where a temp table can't be read multiple times.
* spawns: fixed lost var rename in log output
* items: use UNSIGNED instead of INT when typecasting in query so mysql can also understand it