-- 修复任务-沃姆什的喜悦
* Core/Achievements: Implement criteria type ACHIEVEMENT_CRITERIA_TYPE_ON_LOGIN and criteria requirements ACHIEVEMENT_CRITERIA_REQUIRE_NTH_BIRTHDAY and ACHIEVEMENT_CRITERIA_REQUIRE_KNOWN_TITLE. Fixes anniversary achievements.

By @Schmoozerd
* Core/Achievements: Use ACE_OS::localtime_r instead of localtime in my previous commit for thread safety.

Thanks to @Shauren
* Core: Add rest of checks from SendListInventory to BuyItemFromVendorSlot
* Core/Auras: Implemented SPELL_AURA_MOD_COOLDOWN

Closes #9671
* Authserver / Worldserver: Fix warnings about unused variables
* Remove whitespaces from previous commit
* DB/Gameobject: Fix Dire Pool

Closes #9893
* Core/Entities: allow interaction with gameobject questgivers if player can take or return quests

Closes #11269
Closes #8898
Closes #10204
Closes #11410
Closes #7053
Closes #6189
Closes #9474
* Core/CrashHandler: Add more informations about locals

Handle SymTagData with inner type of SymTagPointerType.
Increase buffer sizes to avoid buffer overflows.
Avoid infinite loops by logging the children of each type only once.
Avoid too deep nesting by adding a max nesting level.
Print the address for arrays instead of just the name.
* Core/Spells: Possible crash fix

Get Unit target with the proper method instead of retrieving Object target and then casting it to Unit, possible dereferencing NULL.
Updates #11560
* Core/Achievements: rename some AchievementCriteriaDataTypes to keep consistent
* DB/Misc: A lucky bag random fixes
* SQL: Maybe I'll have more luck :(
* Revert "DB/Misc: A lucky bag random fixes"

This reverts commit 3fcb1bf09140e59a878911cd889d5047cf8a0ca6.
* Shared/Logs: Add workaround for "w" flag used with dynamic name files

Ignore "w" flag and always use "a" for log files with dynamic name since the file handle is created at every log line and "w" would delete any other logged line from previous _write() calls.
The best solution would be to overwrite only at first call and append at any other call.
* Shared/Logs: Make AppenderFile more thread-safe

In case of dynamic file names don't store the FILE* handle in a shared class variable but keep it only at function scope.

Valgrind log:
  at _IO_un_link (genops.c:69)
  by fclose@@GLIBC_2.2.5 (iofclose.c:55)
  by AppenderFile::CloseFile() (AppenderFile.cpp:94)
  by AppenderFile::_write(LogMessage const&) (AppenderFile.cpp:66)
  by Appender::write(LogMessage&) (Appender.cpp:102)
  by Logger::write(LogMessage&) const (Logger.cpp:63)
  by Log::write(LogMessage*) (Log.cpp:279)
  by Log::vlog(std::string const&, LogLevel, char const*, __va_list_tag*) (Log.cpp:267)
  by Log::outMessage(std::string const&, LogLevel, char const*, ...) (Log.h:129)
Address 0x2a1bd2d0 is 0 bytes inside a block of size 568 free'd
  at free (vg_replace_malloc.c:468)
  by fclose@@GLIBC_2.2.5 (iofclose.c:85)
  by AppenderFile::CloseFile() (AppenderFile.cpp:94)
  by AppenderFile::_write(LogMessage const&) (AppenderFile.cpp:66)
  by Appender::write(LogMessage&) (Appender.cpp:102)
  by Logger::write(LogMessage&) const (Logger.cpp:63)
  by Log::write(LogMessage*) (Log.cpp:279)
  by Log::vlog(std::string const&, LogLevel, char const*, __va_list_tag*) (Log.cpp:267)
  by Log::outMessage(std::string const&, LogLevel, char const*, ...) (Log.h:129)
* Shared/Logs: Code cleanup

Remove unneeded check added in 89af6097f37587e178ac412252326351ca655075
* Core/Warden: Fix crash
* Scripts/Eastern Plaguelands: Fix flypath exploit

Fix npc id 17209 in Eastern Plaguelands enabling taxi cheat to players just by talking to it.