Windows: Correctly handle time.sleep IOError exception
Windows: Correctly handle time.sleep IOError exception

`ProcessManager.run()` uses `time.sleep()` on Windows. When
the process exits on Windows, sometimes we see a call stack
that looks like this:

IOError: [Errno 4] Interrupted function call
Traceback (most recent call last):
  File "... \bin\Scripts\salt-master", line 22, in
    salt_master()
  File "... \site-packages\salt\scripts.py", line 47, in salt_master
    master.start()
  File "... \site-packages\salt\cli\daemons.py", line 157, in start
    self.master.start()
  File "... \site-packages\salt\master.py", line 557, in start
    process_manager.run()
  File "... \site-packages\salt\utils\process.py", line 301, in run
    time.sleep(10)
IOError: [Errno 4] Interrupted function call

It seems that `time.sleep()` on Windows can throw an `IOError`
exception with an errno of `EINTR` (4). We now cleanly handle this
case to avoid this being logged as an error.

Signed-off-by: Sergey Kizunov <dfddabaa9af05982b01940b837a87844148069c9@ni.com>

saltstack/salt,saltstack/salt,saltstack/salt,saltstack/salt,saltstack/salt