Fix a variety of issues with check timeouts / forks:
* Fix default check timeouts not being respected
* Fix checks that timeout resulting in zombie processes
* Fix child process not being killed when parent process is killed
* Move timeout code from the sensu client to the check itself using IO.select