This is mostly an attempt to consolidate all the duplicated logic for matching the expected message sequence with the actual message sequence.
Other improvements: * It seems that winevent_hook_todo wasn't previously reporting cases where Wine correctly sends the event. * More clarity about which type of message was received when there's a mismatch. * If a message doesn't match, and does not exist in the expected sequence, only the actual message will be skipped. Otherwise, only the expected message will be skipped. This isn't perfect, but I think it will help make the output from failures more readable. * Fixed dump_sequence not printing anything for WM_NCCALCSIZE with wParam == FALSE.
Unfortunately, this is going to change the test output, so it will probably break the patterns for testbot detecting known failures. Sorry, Francois.
-- v2: user32/tests: Always generate a description for WM_NCCALCSIZE. user32/tests: Distinguish between extra and missing messages. user32/tests: Share code between ok_sequence and dump_sequence. user32: Remove some todo's for working tests. user32/tests: Use winetest context in ok_sequence.