[12440] Add support for condition_id to spell_area table

Add a new column `condition_id` to table `spell_area`
This column is intended to replace the columns
- quest_start
- quest_start_active
- quest_end
- racemask
- gender

Attention DB-Devs: A tool for convertion will be linked in the comments :)
Final removal of these no more required columns will be done after some time, so that you can adapt and provide UPDATE support for this change :)

Also simplify and gernalize the apply/remove code for these spell-area auras
SQL-Changes for spell_area.condition_id

Add first step of spell_area.conditionId

Add second step of spell_area.conditionId

This removes caching by quest_id
This will be slightly slower, but only expected in case of quest-accept/remove cases.

Some improvements and generalisations
[12441] Add condition_id support to npc_spellclick_spells

The new condition_id column is intended to replace these columns:
- quest_start
- quest_start_active
- quest_end

Conflicts:
	src/game/ObjectMgr.cpp
	src/game/ObjectMgr.h
	src/game/VehicleHandler.cpp
	src/shared/revision_sql.h
[12442] Reorder handling in Creature::SetDeathState(JUST_ALIVE) case

This will behave more logical in case of root/stunn or similar auras which are to be loaded by _addon tables
[12445] Add const Group member iteration
[12446] Implement CONDITION_DEAD_OR_AWAY

Usage of value1:
* 0: return true if player is dead (or NULL)
* 1: return true if all members of player's group is dead (or no player)
* 2: return true if all players in an instance are dead
* 3: return true if the source-creature is dead
Usage of value2:
  if value2 is provided, then this is taken as range. if the player is outside of this range the condition returns true as well
[12447] Implement SCRIPT_COMMAND_TERMINATE_COND

This command is used to terminate a script execution based on a condition (from `conditions` table)
* datalong = condition_id
* datalong2 = fail-quest
* data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL terminate when condition is false. ELSE(normal case) terminate when condition is true
[12448] Fix typo. Thanks also to vladimir for pointing

Signed-off-by: Schmoozerd <schmoozerd@cmangos>
[12449] Fix send-speed opcode sending

SMSG_FORCE_*_SPEED_CHANGE is only sent to the player whose speed changes
Also it appears that the other MSG_MOVE_SET_*_SPEED/RATE should be wrapped into SMSG_COMPRESSED_MOVES (not yet implemented)

Thanks to lyn for pointing to the problem, and researching it down to these opcode sendings as well as testing
[12450] Implement new TempSummon types

* Add TEMPSUMMON_TIMED_OR_DEAD_DESPAWN to remove a creature after a time or when it despawns
* Add TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN to remove a creature after a time or when it died
[12451] Implement virtual void HealedBy
[12452] Implement some spells for Black Temple

Dummy spells 40869, 41333 and add stacking exception for entries 40401, 40447, 39908 and 40017

Conflicts:
	src/game/Spell.cpp
	src/game/SpellEffects.cpp
	src/game/SpellMgr.cpp
[mr2777] some fixes and improvements after last commits
[mr2778] finally remove very old "bool-locking" aura subsystem, use AuraPair instead if need. NEED TEST! related to #1344
SD2 update