Fix handling of spurious wake ups in GetNextMessageTimeout() in wxMSW.

It didn't take long to realize that changes of r78041 did break something
(see #9053), as MsgWaitForMultipleObjects() can return indicating the message
availability even if no message is actually available in the queue. This
notably happens when the application is activated.

Fix this by calling MsgWaitForMultipleObjects() in a loop until we do get a
message. Notice that this only works correctly with the infinite timeout as we
don't update the remaining time to wait after a spurious wake-up, but this
shouldn't be a problem in practice as no such wake-ups should happen anyhow
during a small timeout duration -- and nobody typically uses long ones.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78047 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Avoid spurious errors from wxFileType::GetCommand() under Windows XP too.

This problem was already fixed in r77649 for Windows 7 (and hopefully all the
other supported Windows versions), but it turns out that XP returns a
different error when the association is not found in the registry, so the
debug error message was still given under it.

Fix this by checking for both ERROR_NO_ASSOCIATION and ERROR_FILE_NOT_FOUND.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78048 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775