Mangos 9578 - 9599
Use ObjectGuid in visibility sets
Use ObjectGuid in some loot code.

Also use ObjectGuidSet instead std::set<ObjectGuid>
Add ObjectGuid const& Object::GetObjectGuid() and restore build.
Fixed apply damage reduction to melee/ranged damage.
Send looted creature guid in proper field of loot packets.

Also use ObjectGuid in related functions.
Fixed speed recalculation at remove .mod speed rate while
mounted/etc.
Continue fix loot roll packets and related code.

* Propertly send itemSlot field and use it with looted target for roll
selection.
* Remove references to NumberOfPlayers useless data send in args
* Fixed long existed bug with roll show when single player from group can
roll item.
* Fixed possible crash at player leave group while item roll
* Fixed wrong item amount in stack in rolls inreasult use non-initilized
field as info source.
* Remove unused item guid field from Roll and not lost for nothing item
guids for this.

Thanks for help in research to TOM_RUS and j4r0d.
Restore lost `return` in prev. commit.
Remove a useless include
Fixed freeze after recent loot roll code changes.

Thanks to j4r0d for testing.
Really fix freeze :/
Add additional field for storage of speed_run rate of creature

This allow independent rate of walk vs run speed. Existing field renamed
to explicit speed_walk.
Note that default database rate for run is a result of the most common
value seen, 8.0/7.0
fixed mangos.sql
Fixed rest state remove at leave tavern
fix crash with ACHIEVEMENT_CRITERIA_REQUIRE_INSTANCE_SCRIPT

BattleGroundMap has no GetInstanceData() function
Fixed bug in instance binding in case heroic/25-man raids
difficulties

In fact typo in my old commit at adding support MapDifficulty.dbc.
Allow UTF8 strings via SOAP
Fix the amount of mana restored by spell 68082
Use area trigger zone check for inn leave case.

This is still have false cases but will more correct for specific area
triggers.
Also let cleanup code and store less data for Player.
create battleground map at bg creation

when a bg gets created it will also get it's map
(old behaviour was, that map got's created when first player entered the
instance)

the reason why battlegroundmaps aren't instantiated with a player object:
* the only information from player-class we need is
player->GetBattleGround()
also we can't use anything else
(e.g. playerlevel can be outside of bg-levelrange)
-> cause bgs depend pretty much on their maps this caused circualr
dependencies between map,bg,player
* battlegroundmaps will _always_ be prepared by the bgsystem to set
the proper data
* there is not much shared in the creational process with dungeonmaps
even the functioncall is different since players need to enqueue
first for bgs,
therefore again the player's way to that instance is only through
the bgMgr
update battlegrounds per map + cleanup at delete

this will be useful, if we have multithreaded mapupdates one day



since i couldn't reproduce any errors regarding to self deletions of
battlegrounds i removed the m_deleteThis variable
Adding a few research comments for unit_flags and rename one.