added process_utils module
process_utils: added which() function
process_utils: added execute_process() function
process_utils: doc fixup
process_utils: added execute_process_split() func

This function is identical to execute_process()
except it's output generator yields triplets,
(stdout, stderr, retched), every time with only
one being non-None each time, and stderr is
returned separately from stdout.
process_utils: fixes for Python3 support
process_utils: fix blocking behavior in Linux
process_utils: update tests to reflect expectation
process_utils: added async_execute_process() func
process_utils: fixup async_execute... for windows
process_utils: update docs for async_exec...
process_utils: add get_loop function for async
process_utils: remove test code in module
process_utils: update method for processing lines
process_utils: catch and ignore EINTR in select
process_utils: update documentation layout
process_utils: basic Windows support for synchro.
process_utils: fixup docs
process_utils: fixes while testing on Windows
process_utils: fixup test fixture files