On windows, send sigkill to process if it exceeds its alloted time

Timeouts did not work correctly on windows because we do not kill or
abandon the process.

What was happening was a timeout condition was getting correctly detected,
and an exception was being raised. However, before the exception could
propagate, whatever the process was writing was fully read until it closed its FD.

@randomcamel said he was fixing up the tests

cc @btm @adamedx @randomcamel @opscode/client-engineers