refactor: use SOG.HasPrivateAttachmentPoint in SOP.SendTerseUpdateToClient() instead of attachmentpoint magic numbers.
Use HasPrivateAttachmentPoint properties in SOG.DeleteGroupFromScene() instead of magic numbers
Add state file location to errors logged when there's some issue with retrieving state (e.g. exceeds memory limit)
Retrigger build - last jenkins run was glitched
Add item id, name, prim name and id to log message when state exists but loading fails.

Drop logging about memory limit exceeded to warn from error
Add regression test for updating attachment position
refactor AttachmentsModule tests to use a common method for standard attachment item setup
Fix bug where attachments would not retain position if just rotated and not moved.

This was because we were not setting AttachedPos in SOG.UpdateGroupPositionPR, unlike UpdateGroupPosition
Stop flicking IsAttachment false and then true in AttachmentsModule.UpdateAttachmentPosition() in order to avoid a hud update race condition.

Previously, setting IsAttachment to false then true was necessary to serialize the updated attachment object information.
However, UpdateAttachmentPosition no longer does this update.
Whilst IsAttachment is set to false there is a race condition where the update thread can wrongly send hud object updates to clients that do not own the hud, resulting in screen artifacts.
Eliminate unnecessary extra call to TriggerEmptyScriptCompileQueue in XEngine.DoOnRezScriptQueue()

The later invocation of this function will happen on an empty compile queue.
If starting scripts on initial sim start, provide INFO level log feedback each time 50 scripts have been started.

This is to provide an indication of what's happening now that the default isn't to report every single script start.
Changes XEngine logging level in OpenSim.exe.config from WARN to INFO.
Avoid race condition between m_PrimObjects iteration in XEngine.PostObjectEvent and places where the list is modified by extending the m_PrimObjects lock.
Avoid a race condition where an incoming request to a script external URL can trigger an exception is the URL was being removed at the same time.

This involves three steps
1) Return gracefully in UrlModule.HttpRequestHandler() instead of throwing an exception when the url cannot be found in its index
2) Return true instead of false in HasEvents() if no matching request is found in the map.  This call will only happen in the first place for raced requests.
3) Return a 404 in GetEvents() if the request is not in the index, rather than a blank 200 OK.

Many thanks to Tom Haines in http://opensimulator.org/mantis/view.php?id=6051 for doing some of the work on this.
Resolve various race conditions between accessing and removing external script URLs by more consistently locking on m_UrlMap
Fix script "Running" behavior

  Unchecking "Running" box in script editor now persists. This fixes http://opensimulator.org/mantis/view.php?id=6057
In AttachmentsModule.DetachSingleAttachmentToInvInternal(), remove attachment before changing properties for correct inventory serialization.

Serialization of attachments requires IsAttachment = false so that correct positions are serialized instead of avatar position.
However, doing this when a hud is still attached allows race conditions with update threads, resulting in hud artifacts on other viewers.
This change sets SOG.IsDeleted before serialization changes take place (IsDeleted itself is not a serialized property).
LLClientView then screens out any deleted SOGs before sending updates to viewers.
When attachments are being saved and deleted for a closing root agent, delete first to avoid a hud race condition with update threads.

If delete doesn't occur first then the update thread can outrace the IsAttachment = false necessary to save attachments and send hud artifacts to other viewers.
minor: update currently commented out log message at top of AvatarFactoryModule.SetAppearance() for future use
Add "show region at" command to grid service to get the details of a region at a specific location.  "show region" command becomes "show region name" to disambiguate

This is the same format as used by "show object name", etc.
"deregister region" also becomes "deregister region id"
Add "show regions" console command to ROBUST to show all regions currently registered.

Command is not added in standalone, which has its own version of "show regions" that can also show estate name