Scripts/Ruby Sanctum:

* Move Dark / Flame Breaths handling to generic_halionAI.
* Also apply Twilight Precision to Twilight Halion.
* Fix some mistakes in the corporeality handling code, and remove some unused enums.

Fixes #8176.
Core: Remove Player.h dependency from all the possible headers
DB/Misc:

Add Support for Day of the Dead Closes #3761
Add Ray'ma for Brewfest Closes #3132
Add Spellfocus for Mistcaller Ynfvar see issue #3563
Add SAI for Somnus,Orokk Omosh, Raschal the Courrier,Plainstalker
Closes #3635
Closes #3678
Closes #3679
Closes #3680
Add Spawns & support for Quest Frankly, it makes no sense Closes #3749
Add SAI support for Quests: You Robot, Deaths Door
Closes #3809
Closes #3822
Fix Teribus the Cursed Closes #3930
Add SAI support for quests: To Catch a Sparrowhawk, Stop the Ascension, Melding of Influences
Closes #4803
Closes #4843
Closes #4996
Crash Fix after b99c347
Core/SAI: Allow the actions CALL_KILLEDMONSTER, CALL_GROUPEVENTHAPPENS and CALL_AREAEXPLOREDOREVENTHAPPENS to be used on vehicles, affecting all of their passengers.
Fixed build.
Thanks vincent-michael
Core/Entities: AoE spells should be able to hit invisible targets.
Closes #7712
Fix PetAI missing aggressive pet target select
PetAI minor cleanup of target selection
Another crash fix after b99c347
Merge pull request #8259 from Warpten/supLion

Scripts/Ruby Sanctum: Tweaks and stuff.
Merge pull request #8330 from MrSmite/PetAI_TargetSelect

[Core/Pet] PetAI_TargetSelect
Core/Calendar: Completely rewrite and fix most of the calendar system

There are still some issues that need to be fixed, for more info see CalendarHandler.cpp TODO part.
Some unblizzlike behaviour possible, we don't have a lot of sniffs.
Big thanks to @Warpten, he joined my project and helped a lot.

IMPORTANT NOTE: Read / append packed time functions in ByteBuffer.h are not correct, they need to be fixed in order to have event times accurate

Signed-off-by: Nay <dnpd.dd@gmail.com>
Scripts&DB: Nexus - Ormorok

Following improvements:
- Spellscript for crystal spikes
- Spawn crystal tanglers with spell
- Usage of event map
- Correct usage of frenzy
- Heroic spells
- Target selection for crystal tanglers

Details for the spell script:
There are 4 spells. Each of them spawns the same trigger but in another direction. The trigger gets an aura which triggers the spell which summoned him after 250ms. This time is too long, so it triggers on apply. Don't worry - test ingame first, it's working blizzlike (I watched some videos on YT to find out which is the best amount of time difference between spawn and next summon).

Some summon types don't store the spell id which summoned them. The trigger is one of them which are not doing so. So I had to move the line, which stores the spell id in the summon out of the if. This could be done more specific, but it works fine. This improvement is required to find out which spell the aura applied to the summoned trigger has to cast to keep the right direction.

Closes #8193

Signed-off-by: Nay <dnpd.dd@gmail.com>
Scripts/AQ: Implement Ossirian the Unscarred

Fix yell on kurinaxx death

Warning fix

Closes #8254

Signed-off-by: Nay <dnpd.dd@gmail.com>
Scripts/ToC: Trial of the Crusader rewrite

Closes #8272
Closes #7013
Closes #7552
Closes #5561
Closes #4221
Closes #2701
Closes #2079
Closes #5082
Closes #6503
Closes #6784

Signed-off-by: Nay <dnpd.dd@gmail.com>
Misc: Whitespace and tabs cleanup
Scripts/AQ: Fix non PCH build
Scripts/Instances: Save Magister's Terrace door (and statue) state.
Closes #6889
Scripts/Instances: Added missing definition from previous commit.
Core/Battlegrounds: Add methods for determining the winner of a BG if it has ended due to not enough players.
Implemented for Arathi Basin, Alterac Valley, Warsong Gulch and Eye Of The Storm.
All other BGs winner are currently decided based on the number of players of each side, they will be implemented later.