Do not terminate desktop from a Timer

<sberg> kendy, as you recently changed Timer handling on Windows: debugging why
 quickstarter no longer works on Windows, I run into the phenomenon that
 IdleTerminate::Timeout (sfx2/source/appl/shutdownicon.cxx) executes on the main
 thread, and from within the m_xDesktop->terminate() call Timer::ImplDeInitTimer
 is called which deletes the pTimerData corresponding to our IldeTerminate, so
 that Timer::ImplTimerCallbackProc, after the return from
 IdleTerminate::Timeout, will operate on a stale pTimerData and crash; could
 that be related to those recent changes?
<kendy> sberg: I think mst told that we were previously never deleting the
 timer, and that he did some changes there [...]
<mst__> sberg, IdleTerminate needs a different implementation
<mst__> sberg, does it work to do this via PostUserEvent, as
 "Application::Quit()" does?
<sberg> mst__, do you think calling terminate from a Timer did work in the past?
 [...]
<mst__> sberg, perhaps it did before [a recent] commit but i would guess it
 would be more by accident than by design

Change-Id: I23b14ba59a963cc2209a261a1459d532a88acdc0
(cherry picked from commit d8a0ecc94bfbfc1d9c8403f0e894d3b7e40384f2)
Reviewed-on: https://gerrit.libreoffice.org/11852
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>