[z1961] Implement new conditions system

Tree-like design idea by Faramir118, thanks for that!

* Add `conditions` table to store conditions.
* REPLACE current handling of conditions for the *_loot_template tables
  Convert the old conditions in *_loot_template to the new system by SQL-Queries
* ADD support for new conditions to gossip_menu and gossip_menu_option.
  If for these tables no condition_id (new system) is provided, the old conditions will still be used
* Add a small helper python script to contrib/convertConditions, see README there for details
* Add new command to reload the `conditions` table (.reload conditions)
* Add two Meta-Condition types CONDITION_AND (-1) and CONDITION_OR (-2) which are used as:
  value1 (as condition_entry) AND / OR value2 (as condition_entry)

  With these meta-conditions it is possible to create tree like and very complicated combined conditions (like HasAura && (HasItem || HasQuest))

NOTE about conversion:
For easier convertion all the old table data is still preserved, but will be removed eventually (within a circle of the moon approximately)
The python script will not create an optimal initial fill of the `conditions` table. You might want to tweak it manually or suggest some optimized algorithm :)

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
Signed-off-by: Nighoo <nighoo@gmail.com>

(based on commit ccfeefb)

(cleaned version of 274a2b0)

(based on commit [s1549] - c194b44)
[z1962] Tweak comment about default config values

(based on commit 667a568)

(based on commit [s1550] - a8179d3)
[z1963] Replace an ASSERT to prevent unnecessairy crashes

GetAngle can be called for self from very many places, not only DB-errors, hence adding the assert is too strong in the moment

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
Signed-off-by: Nighoo <nighoo@gmail.com>

(based on commit 2f03b28)

(based on commit [s1551] - f15345e)
[z1964] Add support for range dependend slave/master

Add new column `search_radius` to `creature_linking_template`.
If this column is used (value > 0), master and slave are linked together if and only if they have their respawn coordinates within this range (point-to-point distance calculation)
Note that linked spawning is slower this way and should only be used if required

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
Signed-off-by: Nighoo <nighoo@gmail.com>

(based on commit 839d83c)
(based on commit 6904541)

(cleaned version of e672205)

(based on commit [s1552] - a0855a5)
[z1965] Add wrapper HasAttribute to check if a spell has an attribute

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
Signed-off-by: Nighoo <nighoo@gmail.com>

(based on commit 73d543e)

(cleaned version of 4f3c685)

(based on commit [s1554] - ed72481)
[z1966] Remove partial DummyEffect implementation of spell 8593

Both belong to Paladin Resurrection quests. And they are expected to be handled by SD2

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
Signed-off-by: Nighoo <nighoo@gmail.com>

(based on commit 7834459)

(cleaned version of b51e3f3)

(based on commit [s1555] - a5936c8)
[z1967] Backport misc changes from master

(cleaned version of 71c8e88)

(based on commit [s1556] - d351600)
[z1968] Sync code style with master.

(based on commit c697d8a)

(cleaned version of 9abaa1f)

(based on commit [s1557] - 282e04d)
[z1969] Partially port [9704]

(based on commit 35ef7fe)

(cleaned version of 14d09c6)

(based on commit [s1558] - aaebf67)
[z1970] Breath/fatigue/fire damage timers tick each 2 sec.

(based on commit 1e6f480)

(cleaned version of 1cfd651)

(based on commit [s1559] - bdb5a2f)
[z1971] Backport second part of [9083]

(based on commit 5f17e8c)
(based on commit 4fcb4ad)

(cleaned version of e37bc3d)

(based on commit [s1560] - 889c526)
[z1972] Fix spell targeting for some spells like 20243

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
Signed-off-by: Nighoo <nighoo@gmail.com>

(based on commit 806d27b)

(cleaned version of dbee00a)

(based on commit [s1561] - 842f01d)
[z1973] Use a few more enums instead of magic numbers

(based on commit e19471f)

Signed-off-by: Nighoo <nighoo@gmail.com>

(cleaned version of 538325d)

(based on commit [s1562] - 8c031fd)
[z1974] Fix some spell visuals (for spells like 39179)

(based on commit 8893404)

Signed-off-by: Nighoo <nighoo@gmail.com>

(based on commit [s1563] - f2d86b6)
[z1975] More uses of wrappers introduced in [z1965]

Also fix a typo that caused problems with Stances

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>

(based on commit ae1538c)

(cleaned version of 0f9bba1)

(based on commit [s1564] - 363fc7b)
[z1976] Fix mangos.sql. Thanks to NicolasQuasar for pointing.

(based on commit 7027c03)

Signed-off-by: Nighoo <nighoo@gmail.com>

(based on commit [s1566] - d38f3f1)
[z1977] Some missing code style backports from master

(cleaned version of f4adf23)

(based on commit [s1569] - b58e066)
[z1978] Improve support for wild summoned GOs

* Support GetGameObject for wild summoned GOs
* Proper delete WildSummoned GOs after they are used

(based on commit 4784c49)

(cleaned version of 82744c3)

(based on commit [s1570] - c8ac855)
[z1979] Fix targeting of most pet spells. They expect to target alive pets

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>

(based on commit 65e675e)

Signed-off-by: Nighoo <nighoo@gmail.com>

(cleaned version of 9063ee3)

(based on commit [s1571] - 42b3033)
[z1980] Fix DB_STRICTED_CHECK output for gossip

This fixes to integrity check to report unused gossip_menu entries. Before only menus used by creatures with gossip_menu_items were reported

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>

(based on commit 7f06eff)

Signed-off-by: Nighoo <nighoo@gmail.com>

(cleaned version of 77d1093)

(based on commit [s1572] - 3547ca7)