Extracted child process management out of Resque::Worker into
Resque::ChildProcess.

This is an attempt to reduce the complexity of Resque::Worker.

* Extracted logic for a forked child process into a dedicated class
* Made Worker#will_fork? public due to legacy test stubbing
* Moved the majority of the logic from Worker#fork_for_child into ChildProcess#fork_and_perform
Resolve merge conflict