PT44376021 - Race in resources deallocation from OsTimer

Fixed the resources deallocation order in OsTimer. The mutex that guards timer service
was made static so it can outlive all timers and the timer service. The timer service
will not stop when requested if at that moment there are active timers (if it will be
stopped it will corrupt remaining timers memory). We rather leak memory than corrupt
something.

Main body in sipXpark was enclosed in {} to make sure all timers are deleted before
terminating the service.
Fixed various issues indicated by Valgrind:
- garbage collector thread is started on demand by user agent because otherwise it may
start too soon and use uninitialized values;
- garbage collector thread should be stopped on demand from user agent because otherwise
it may be stopped after user agent was destroyed and use an invalid user agent;
- fixed a race between thread creation and var initialization;
Merge remote-tracking branch 'origin/release-4.6-update-2' into release-4.6-update-2