Rename compiler specific fixes files to follow common naming scheme
windows: Use GetSystemTimePreciseAsFileTime() if available

It has much better precision than GetSystemTimeAsFileTime().

GetSystemTimePreciseAsFileTime() was added in Windows 8.
windows: Fix race between socket select thread and USB poll thread

It can happens that the USB poll thread writes to the ready pipe after
select() in the other thread has returned but before the other thread
had suspended the USB poll thread. Then there is a value in the ready
pipe that will not be handled for this iteration of the socket select
thread. In the next iteration of the USB poll thread it'll write to the
ready pipe again because there are still USB events to handle that have
not be handled in the last iterartion of the socket select thread. Now
there are two vaules in the ready pipe for one set of USB events.

In this iteration the socket select thread will see that there is data
in the ready pipe to be read and handle the USB events. But there is
still an extra value in the ready pipe. In the next iteration of the
socket select thread it looks to this thread as if there are USB events
to handle because there is still a value in the ready pipe. But this
might not be true, there might be none or a different number of USB
events to handle than indicated by the value in the ready pipe. This
will then result in a warning where N and M differ:

Handled only N of M ready USB event source(s)

Avoid this problem by not using the ready pipe to transport the number
of ready USB event sources anymore. Just use it for signalling and store
the actual value in the USBPoller struct. This way the value backlock
is avoided.
windows: Ensure that snprintf() is available under its POSIX name