Refactoring for single parent process worker

Continues the work of the previous single worker process commit.
This is primarily a refactoring to clean up and separate the
single process and parent process worker code to eliminate
a lot of conditional code depending on configuration.

Also updated logging to be more consistent and to record worker
id, parent pid, and child pid (where applicable) to help with
tracing.