[z2159] Create DynTree in map and store gameobject collision modells in it

Code heavily modified by Subv. Also thanks to Reamer and Cyberium for porting!

Performance TODO Note:
"rebalance the tree at each grid loading - it's still a dirty way of performance improving, need split map into few trees"
Note to note: I removed the balancing at grid loading, balancing is also done on timer, and i think balancing shortly after grid loading is better choice to not make the bottle-neck "grid-loading" harder
However real perfomrmance improvement is only reasonable after strong performance analysis

Signed-off-by: Schmoozerd <schmoozerd@cmangos>

(based on commit [12240] - b59d0b4)

(based on commit [s1790] - 2001b76)
[z2160] Use dynamic collision in main collision methods on Map level

Update Map::IsInLineOfSight to check for dynamic collision data
Create Map::GetHitPosition (former GetObjectHitPos) to get the hit-position with dynamic collision data

Thanks to Subv, Reamer and Cyberium for code adaptions

Signed-off-by: Schmoozerd <schmoozerd@cmangos>

(based on commit [12241] - 53b0628)

(based on commit [s1791] - 582e026)