Fix issue where avatar and script chat could sometimes be heard from anywhere in neighbouring regions.

This was due to a silent uint overflow in ScenePresence.UpdateChildAgent() corrupting child agent positions
when the child agent was in a region with a greater x or y map co-ord than the root agent region
Probably introduced in beeec1c.
This still will not function properly with very high region map co-ords (in the millions) but other parts of the code don't handle this properly anyway.
Looks to address http://opensimulator.org/mantis/view.php?id=7163
minor: remove compiler warning in SceneObjectPartInventory
minor: Remove some unused fields in ScenePresence
minor: Comment out currently unused log setup in TerrainCompressor
Allow map searches for regions that contain the characters "!+|"

These characters are used as placeholders for other characters: ": /". But we should search first for the exact string the user entered, and only if that fails then replace the characters and search again.
Store the Teleport Flags in the Circuit. This doesn't seem to be necessary, because everything has worked so far, but it's the right thing to do.
Fix mantis 6973. Prevent BOM being prefixed to message XML which was causing an exception when the service tried to read the data later on.

Signed-off-by: Oren Hurvitz <orenh@kitely.com>
Fixed a problem with detaching attachments in situations where the user's asset server is not the same as the simulator's asset server. Unfortunately this still continues to be wasteful -- new assets are created every time an attachment is detached, but the process of storing the new asset goes through the InventoryAccess module, which does all sorts of checks regarding the users' inventory.
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Add regression test for in-range chat between neighbouring regions from east to west.
Simplify regression TestInterRegionChatDistanceEastWest() by making the child presence connection directly rather than routing through TestClient.

This code isn't relevant to this test and is already exercised by other tests.
Extend regression TestInterRegionChatDistanceEastWest() to test in range chat both ways.
Extend regression TestInterRegionChatDistanceEastWest() to test out of range chat
Add regression test for north-south chat across neighbour regions.
Fix issue where llSetCameraAtOffset() and llSetCameraEyeOffset() in non-root prims moved camera/focus to wrong position.

For non-root prim, eye offsets now need to be made relative to root prim if either camera-at or camera-eye are set.
Probably a regression since November 2013 when all sits were made relative to root prim to match viewer expections (and fix other bugs).
Addresses http://opensimulator.org/mantis/view.php?id=7176
If the root prim has a camera-at or camera-eye setting and a sat upon child prim does not, use the root prim offsets.

This matches behaviour just tested on the Linden Lab grid.
If a script calls llSetCameraAtOffset() or llSetCameraEyeOffset() on a child prim and the root prim has no corresponding value set, then also set the root prim.

This matches behaviour just tested on the Linden Lab grid.
Compensate camera-at and camera-eye for child prim rotation when sitting on child prim with camera-eye set
Add any camera at compensation for sat upon child prims to any existing camera-at value, rather than replace.
If one is sitting on a child with an unset camera-eye and so using one set in a root prim, the focus should remain on the root prim.

Matches behaviour just tested on the Linden grid.