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)
Core/Warden: Fix crash
Shared/Logs: Code cleanup

Remove unneeded check added in 89af6097f37587e178ac412252326351ca655075
Merge pull request #11580 from Dehravor/warden

Core/Warden: Fix crash

Fix NULL dereference crash in case Warden is disabled (in configs or on Mac OS X platform) and client sends a CMSG_WARDEN_DATA opcode
Scripts/Eastern Plaguelands: Fix flypath exploit

Fix npc id 17209 in Eastern Plaguelands enabling taxi cheat to players just by talking to it.
Core/SAI: Fix crash

Disable script type SMART_SCRIPT_TYPE_TIMED_ACTIONLIST actions if they are trying to overwrite the timed action list while iterating it.
This was invalidating the iterator and deleting any smart action stored in it, including the current executed one.

Valgrind log:
 Invalid read of size 1
  at SmartScript::OnUpdate(unsigned int) (SmartScript.cpp:3258)
  by SmartAI::UpdateAI(unsigned int) (SmartAI.cpp:331)
  by Creature::Update(unsigned int) (Creature.cpp:544)
 Address 0x1807d9b2 is 10 bytes after a block of size 40 alloc'd
  at operator new(unsigned long) (vg_replace_malloc.c:319)
  ...
  by SmartAIMgr::LoadSmartAIFromDB() (SmartScriptMgr.cpp:231)
  by World::SetInitialWorldSettings() (World.cpp:1724)
  by Master::Run() (Master.cpp:169)
  by main (Main.cpp:142)
Core/SAI: Improve error log

Log both target and current Object when checking if a Creature/GameObject have SmartAI enabled.
DB/Items: Added "few" missing items.
Core/Group: Add sanity checks to CMSG_LOOT_METHOD's handler

If lootMethod or lootThreshold is invalid, portrait menus become unusable to the entire raid.
DB/Creature: Fix trigger visibility

They where visible to players and invisible to gms.
Core/Group: Fix exploit

The master looter should be in the group.