First pass at worker rewrite.

In particular, it now has a single parent process managing many children.
Also, each child does many jobs serially and new children are only spawned
to replace failing children.
Supports catching lock lost in workers
Switching to fork do, because Ruby is crazy.
log is an instance variable
unfocus a test
when using ShuffledRoundRobin reshuffle the queue list in the child after a fork and before entering the work loop.
Add a few more log lines.
Prevent the ole thundering herd problem. Provide an optional max_sleep_interval which, on startup, will force a brand new child to sleep anywhere from 0 to max_sleep_interval. It defaults to 10.0s.
First pass with rubocop
Removed wait_until

It was a little big kludge-y, and in all the cases I could find, could be replaced
with something more appropriate. Particularly joining threads.
Refactoring tests
Coverage, code review changes
Changes in response to code review
Changes in response to code review