Core&DB/Spells: Move custom spell attributes from code to DB, `spell_custom_attr` table

`spell_custom_attr`
- `entry` uint PK
- `attributes` uint (enum SpellCustomAttributes of SpellInfo.h)
SQL: Update old .sql files to keep consistency with auth_database.sql

Also update characters_database.sql (generated by mysqldump)
Core/Spells: Fix DK Ghoul's damage after ad8eb434c02e451effd0949aaa7d2b7999d91597. I misread 'SpellScript::m_damage' for 'SpellScript::damage'.

By @joschiwald
SQL: Fixed two issues with 2014_01_31_00_world_spell_custom_attr.sql

Engine should be MyISAM and not MRG_MyISAM
MySQL doesn't play nice with hex values so converted them to decimal

Closes #11537
Core/Achievs: Rename a few unknown achievement criteria flags

Source tomrus88, Mangos
DB/item_template: Set defaults of spellcharges_X to 0 instead of NULL

Closes #10748

Signed-off-by: Duarte Duarte <dnpd.dd@gmail.com>
SQL: Update 2014_01_31_01_world_item_template.sql
Core/Arena: Fix arena season not always appearing to clients

Arena season sent to client with SMSG_INIT_WORLD_STATES opcode was not sent if Player was on a zone with id 0 on login. Initializing the zone id to -1 will always trigger UpdateZone() properly on login.
Fixes #10623
Shared/Logs: Fix crash in Console log output

Correctly handle the return value of vsnprintf() which returns -1 if the buffer is too small http://msdn.microsoft.com/en-us/library/1kt27hek.aspx . In this case just truncate the output.
This caused a crash on character delete if Logger.entities.player.dump was enabled and set to 3.
Fixes #11539
Build: Use override/final keywords for VS 2012 and newer. (VS 2013 still defines __cplusplus as 199711L)