Fix handling of user preference updates where no email address is supplied
Re-work handling of email notifications settings.
Temporary hack to disable av to av collisions in bulletsim.

Need to do this for a test.  Final implementation will be properly controlled through a property.
Add experimental job engine to see if queueing some existing async work during root agent entry to a region improves perf rather than always attempting to execute everything concurrently

Job engine is controlled via "debug jobengine start|stop|status".
Can only currently be enabled and disabled dynamically at runtime.
Currently only applies to code sending initial region data (objects, other avatar data) to a client.
Temporarily add root agent rez attachments work to job engine if it is running rather than as a fire and forget.

Experiment to see if serializing attachment rez and send initial data jobs improves other parts of sim performance.
Add loglevel to jobengine that can be controlled via "debug jobengine loglevel <level>".

Defaults to 0
Level 1 currently does verbose logging about every queued and processed job.
Set ThreadPriority on main scene thread to highest.

This will only have an effect on Windows systems or mono with the (not recommended) mono-3.2.8 debug patch https://gist.github.com/justincc/31e52218d098529b4696 applied
Make outboudn and packet inbox handling threads highest priority.

Will only have any affect under Windows or mono with a patch such as https://gist.github.com/justincc/31e52218d098529b4696 (not recommended) applied.
For assessment purposes.
Make BulletSim thread be ThreadPriority.Highest if running

Will only effect Windows or mono with a patch such as https://gist.github.com/justincc/31e52218d098529b4696 applied
For test purposes
Improve frame time stability by taking a few unnecessary repeated calculations out of the main scene loop.

Also uses a wait event to sleep rather than a Thread.Sleep to allow the loop to be interrupted in a more controlled manner when necessary.
If Bullet is running on its own thread, use a reset event to control timing rather than a sleep.

In theory, there should be no difference between these mechanisms.
However, on at least Mono 3.2.8 waiting via an event appears to be much more accurate.
Fix recent minor regression where the default frame time wasn't being set if there was no startup config section.

Caused some regression tests to fail.
Eliminate a few unnecessary calculations in the maintenance loop.

Also uses wait event instead of sleep for periodicity control.
Add "debug lludp throttle set" command to allow setting of parameters at runtime

Can currently only set adaptive true|false, where adaptive = false
refactor: rename "debug lludp throttle status" to "debug lludp throttle get" to match set command
refactor: Move LLUDPServer console commands into their own class.
minor: Remove compiler warnings from unused fields in TokenBucket
Add OutgoingPacketsQueuedCount clientstack stat.

This is the total of queued outgoing packets across all connections, as also seen in the "show queues" command.
Gives some early indication of whether the simulator can't send all outgoing packets fast enough.
Though then one would want to check that this isn't due to a few bad client connections.
minor: remove compiler warning from OpenProfileClient
minor: Remove compiler warning from GridRegion in IGridService