ForkWorker can kill jobs that run up to their deadlines.

With default settings, this means that, if a work unit never calls
update(), ForkWorker will notice about 275-300 seconds after it starts
that it's still running, kill the child, and fail the job.  If a work
unit does update() then the trigger is up to 15 seconds before its
final expiration.

The more specific settings are (in the rejester fork_worker config) that,
every heartbeat_interval, in addition to heartbeating, the worker will
check for jobs whose expiration is within stop_jobs_early seconds and kill
those.

This also updates the register_worker() API to record a parent, and records
a process ID in the worker "enviroment" data.