Somewhat improve avatar region crossings by properly preserving velocity when avatar enters the new region.

This commit addresses the following issues were causing velocity to be set to 0 on the new region, disrupting flight in particular
* Full avatar updates contained no velocity information, which does appear to have some effect in testing.
* BulletSim was always setting the velocity to 0 for the new BSCharacter.  Now, physics engines take a velocity parameter when setting up characters so we can avoid this.
This patch applies to both Bullet and ODE.
When performing region cross, don't add the velocity to the new position in ETM.CrossAgentIntoNewRegionMain() since this has already been performed by SP.CheckForBorderCrossing()
Halve the prediction lag for region crossing to improve most flying region crossings without degrading the walk cross experience (neither of which have been that great anyway).
minor: Remove a few indenting problems introduced to recent 265fe349 and convert the m_log.DebugFormat() call back to the original DetailLog call
Restore zero'ing RawVelocity in BSCharacter.ZeroMotion() in favour of not calling ZeroMotion in SetPhysicalProperties() at all

SetPhysicalProperties is only called when adding a new character so it looks like there is no existing data to reset anyway.
Remove minor race condition where two threads could race on fields such as m_ScriptFailCount as set in XEngine.DoOnRezScriptQueue()
If there are any exceptions in XEngine.DoOnRezScriptQueue() then log the error and always set m_CurrentCompile = null

Setting m_CurrentCompile = null in the finally block reduces the risk that an exception could permanently stop any future scripts compiling until the simulator is restarted.
If an exception is seen from this then please report and further changes to fix the bug or improve compiling reliability can be made.