Create a NOWAIT option for next() in JQStore/Propel; expose as an option nextAlwaysWaitsForLock and default to be backwards-compatible.

- This change reduces locking load on the db at the cost of having more idle time
- The legacy/default mode is "correct" and needed to keep workers busy
  and also for "ideal" accounting in the concurrency test scripts
Optimization: only lock table during enqueue when the incoming job has a coalesceId.
Add mulligan feature for system-level errors; jobs will be failed but will always get a free retry.
repro signal race
Gracefully handle cleanup of job during shutdown when the job has finished but not yet been persisted to the JQStore.
undo change to repro signal cleanup race.
undo transactions during signal processing.
Implement abort() interface for better architecture for cleanup.
Create a specific JQStore_JobNotFoundException for not found jobs; gracefully handle not found job in worker signal termination cleanup.
Refactor signal handling; add graceful shutdown timeout; cleanup exit() codes.
Refactor signal handling; add new utility function for logging job status.
Prevent statusDidChange() userland errors from breaking JQJobs processing workflow.
log uuid and pid to prevent confusion between workers on multiple boxes with same pid.
debug sleep in run loop
try usleep
burner
try time_nanosleep
Fix bug in try/catch of SignalExceptions due to php (pdo in this case) converting our SignalException into a PDOException.
Clean up our internal sleep function.
Add enableJitter