add macro MAPLOCK_TRYREAD/WRITE and fix overlock in Unit::SpellDamageBonusDone