Allow one to specify a DefaultHGRegion flag in [GridService] in order to allow different default regions for HG and direct grid logins.

This requires a new GridService.GetDefaultHypergridRegions() so ROBUST services require updating but not simulators.
This method still returns regions flagged with just DefaultRegion after any DefaultHGRegions, so if no DefaultHGRegions are specified
then existing configured defaults will still work.
Immediate use is for conference where we need to be able to specify different defaults
However, this is also generally useful to send experienced HG users to one default location and local users whose specified region fails (e.g. no "home" or "last") to another.
Comment out warning about agent updating without valid session ID for now.

This causes extreme console spam if a simulator running latest master and one running 0.7.5 have adjacent regions occupied by avatars.
Fix bug where users teleporting to non-neighbour regions could continue to hear chat from their source region for some time after teleport completion.

This occurs on v2 teleport since the source region now waits 15 secs before closing the old child agent, which could still receive chat.
This commit introduces a ScenePresenceState.PreClose which is set before the wait, so that ChatModule can check for ScenePresenceState.Running.
This was theoretically also an issue on v1 teleport but since the pause before close was only 2 secs there, it was not noticed.
Remove test that gives issue on Windows, just let the try/catch do the work.
Add experimental "show grid users online" console command to show grid users online from a standalone/robust instance.

This is not guaranteed to be accurate since users may be left "online" in certain situations.
For example, if a simulator crashes and they never login/logout again.
To counter this somewhat, only users continuously online for less than 5 days are shown.
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Fix logic errors in "show grid users online" console command which didn't actually filter out users shown continuously online for more than 5 days

Remove confusion in command output.
minor simplification of some unix date functions in Util.  No functional change.
Show behaviours of pCampbot bots in "show bots" and "show bot" console commands
Fix build break from last commit 9c65207.  Mono 2.4 lacks string.join(string, List<string>), or some auto casting is missing
And fix break in "show bot" from commit 9c65207
Add ability to adjust pCampbot bot behaviours whilst running with "add behaviour <behaviour-name> <bot-number>" console commad
Add pCampbot "remove behaviour" console command for removing bot behaviours during operation.

Doesn't currently work very well as stopping physics, for instance, can leave bot travelling in old direction
Add Close() method to IBehaviour to allow behaviours to cleanup when removed or bot it disconnected.

In this case, it is used to turn off jump when physics testing behaviour is removed.
Consistently give responsibility for thread sleeping to behaviours rather than controlling from the main action loop

This is to avoid excessive and inconsistent delays between behaviours that currently need to embed sleeps in other actions (e.g. physics) and other behaviours.
Might need a more sophisticated approach in the long term.
Make pCampbot "add behaviour" and "remove behaviour" console commands work for all bots if no bot number is given
In pCampbot PhysicsBehaviour.Close(), only cancel jumping if bot is connected
For a Hypergrid user, delay estate access checks until NewUserConnection() so that they work.

This is necessary because the hypergrid groups checks (as referenced by estates) require an agent circuit to be present to construct the hypergrid ID.
However, this is not around until Scene.NewUserConnection(), as called by CreateAgent() in EntityTransferModule.
Therefore, if we're dealing with a hypergrid user, delay the check until NewUserConnection()/CreateAgent()
The entity transfer impact should be minimal since CreateAgent() is the next significant call after NewUserConnection()
However, to preserve the accuracy of query access we will only relax the check for HG users.
Also check user authorization if looking to upgrade from a child to a root agent.

Relevant if a child agent has been allowed into the region which should not be upgraded to a root agent.
Stop "show client stats" from throwing an exception if somehow Scene.m_clientManager still retains a reference to a dead client.

Instead, "show client stats" now prints "Off!" so that exception is not thrown and we know which entries in ClientManager are in this state.
There's a race condition which could trigger this, but the window is extremely short and exceptions would not be thrown consistently (which is the behaviour observed).
It should otherwise be impossible for this condition to occur, so there may be a weakness in client manager IClientAPI removal.