VM: attempt to cancel blocking system calls when ctrl-c is pressed

Windows runs ctrl-c in its own thread and doesn't by itself interrupt
blocking system calls when it is pressed. Therefore you have to manually
send an interrupt signal to the stuck thread.
Merge branch 'win-cancel-io' into everything