fdo#84000: Reimplement the Windows WinSalTimer using Timer Queues.

Timer Queues

http://msdn.microsoft.com/en-us/library/windows/desktop/ms686796%28v=vs.85%29.aspx

allow creating & maintaing high-precision timers.  This commit switches the
WinSalTimer implementation from using the Timers:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms644900%28v=vs.85%29.aspx

to Timer Queue Timers.

The 'classic' Timers do not have better precision than some 15.6ms (the
documentation mentions 10ms, but some measuring seems to confirm that it is
more than that).

With the Timer Queue Timers, we now have 1ms precision.

Incorporates some cleanup from Michael Meeks <michael.meeks@collabora.com>.

Change-Id: I0312a0c9fdc2779258698b24389b24c39e643473
fdo#84000 - unwind recursive timer issues.

Seemingly timers were not being issued or re-queued. Handle recursion
issues in the main thread, not in the timer thread.

Change-Id: I4f49341115bb7c7b1613e61f77a467154818a8aa