Add signal handling to queue worker for clean shutdown
Check for pcntl_signal support before invoking

The pcntl_signal call is only currently supported on *nix environments,
and not even Mac at that. Check to see if the function exists before
invoking it.
Allow jobs to perform a pre-run check and be requeued

There are intstances (for example when an account is in maintenance mode) that
it would be unwise to actually perform a queued task. Only the task knows what
those conditions are for itself, so we delegate the job of knowing that to the
task in the canRun() method.

But now we have three outcomes for a job: Done, Failed, and Couldn't run. Add a
new method to the QueuedTask Model to support requeuing a job that isn't
failed.
When we requeued the task, the `notbefore` date was calculated relative
to the MySQL clock and this is out of sync with PHP's clock. So it was
setting `notbefore` to the past and the job would just get run over and
over again. Now the dates calculated are all by PHP