Core/SpellScripts: implement Spell Proc Hooks and use it in old and new proc system
Hooks:
- DoCheckProc: executed when aura checks if it can proc
- DoPrepareProc: executed before aura procs (possibility to prevent charge drop/cooldown)
- OnProc: executed when aura procs
- OnEffectProc: executed when aura effect procs
- AfterEffectProc: executed after aura effect proced
- AfterProc: executed after aura proced and charges removed

using PreventDefaultAction() in DoPrepareProc will prevent charge drop and cooldown

default execution of a proc can prevented in OnEffectProc with PreventDefaultAction()

Now we should be able to convert almost all procs from Unit::ProcDamageAndSpellFor to SpellScripts

Notes to old proc system:
- if a proc has a cooldown we must check it in spellscript and add it when we handle the proc
- behavior with charge drops is possible undefined (use PreventDefaultAction() in OnEffectProc to notify that the script is executed)
Core/maps: separate mutex for grid
DB/Conditions: Fix DB startup errors

Thanks @vlad852
Related to d77904e0af2b9a15013efc383
Core/Scripting: Clean up boss Jin'do
TDB 335.50 - 2013/01/14
Core/Scripting: Fix Zul'Grub Instance
Core/Scripting: Update boss Mar'li script
Core/Scripting: More Zul'Grub updates
Core/Scripting: Fix build
Core/Scripting: more Zul'Grub updates
Merge pull request #8906 from ille/GridLock

Core/Maps: separate mutex for grid
Script/Ruby Sanctum: Some cleanup and minor fixes

Solves #8573
Closes #8490
Script/Ruby Sanctum: Miss in a05e78bb18226a16f049e6b01e35597d8a2d30d9 Thanks joschiwald
Core/Misc: Apply codestyle to multiple files
DB/Game Event: Update some game events start time for 2013
DB/Schema: rename ip2nationcountries to ip2nationCountries (Linux)

Closes #8947
Thanks Vincent
DB/Quest: Lefty loosy, righty tighty

Solves #2025
SQL: Fix sql import problem
DB/Creature: Add Missing spawn for Lunk-tusk
WorldServer/RA: Implement MSG_NOSIGNAL in RASocket send.

Used to prevent raising SIGPIPE when the host are no longer recv()ing