Revert "refactor: make llGiveInventory() use existing GetInventoryItem() method rather than iterate through TaskInventory itself."

This reverts commit 58b13d51a7eddb442e38e6dc6790a9e7cf68bad7.
Fix regression where llGiveInventory() had stopped asking non-owner receivers to accept/decline.

This appears to be a regression from back in commit db91044 (Mon Aug 22 2011) where we started to send TaskInventoryOffered msg dialog rather than InventoryOffered dialog.
This is probably correct, but failed because the bucket was too large and because we wouldn't have handled the TaskInventoryDeclined option anyway.
This patch handles both of these and make llGiveInventoryList() use TaskInventoryOffered as well
Fixes http://opensimulator.org/mantis/view.php?id=6089
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Revert "Revert "refactor: make llGiveInventory() use existing GetInventoryItem() method rather than iterate through TaskInventory itself.""

This reverts commit 59a29f5f221a1ffe4e22c63ef9da82270442b213.
The original revert was committed by mistake - it turns out this was not the cause of Mantis 6089

Conflicts:

	OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Close() the ScenePresence after we've removed it from the scene graph, to cut down race conditions when another thread manages the grab the presence after some SP structures have been reset.
Only listen to LoginsEnabled event in RegionReadyModule if it has been asked to disable logins until all scripts have been compiled
Missing parameter in log error message was throwing exception
Merge branch 'master' of git://opensimulator.org/git/opensim
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Pass entire scene object in OnLoginsEnabled event rather than just the region name.

This saves listeners from having to re-retrieve the scene from their own lists, which won't work anyway if multiple regions with the same name have been allowed
Establish EventManager.OnRegionReady event.  This will only be triggerred once when the region is ready.

Switch MapImageServiceModule to use this.
Fix bug where region ready was being triggered twice in quick succession if a region contained no scripts.
Fix bug where region ready would be triggered a second time if a script was rezzed on a previously script-free region.

There is no need to listen for OnRezScript in RegionReadyModule since OnEmptyScriptCompileQueue will only fire if scripts were compiled.
Stop the 15 second initial script compile wait if a script is being rezzed on a previously empty region.
Perform other region ready actions even if simulator is configured to leave logins disabled on startup.
Add back notification to neighbouring regions when RegionReadyModule is not active accidentally just removed in 528004d
Add EventManager.OnRegionLoginsStatusChange fired whenever logins are enabled or disabled at any point, not just during initial startup.

This replaces EventManager.OnLoginsEnabled which only fired when logins were first enabled
and was affected by a bug where it would never fire if the region started with logins disabled.
Add basic TestCreateRootScenePresence() regression test
Add TestCreateDuplicateRootScenePresence() regression test.