ycmd watchog timer now wiser about machine sleep

We now make sure we don't terminate ycmd if we skipped a watchdog wakeup
time. If we skipped a check, that means the machine probably went to sleep and
the client might still actually be up. In such cases, we give it one more wait
interval to contact us before we die. Credit to @metatheos for the idea.

I've split this into a separate branch so that it can be more widely tested before being merged.

Fixes #880