Complete job overhaul, part 1

This commit adds a new scheduler for regular jobs, with 4 different
queues. It also makes the format of job objects private to jobs.c and
only allows access using accessor functions.
This doesn't change how background jobs work, that is to be done in part
2. Eventually.

Please test this and see if/where it breaks. I would also be glad if you
could grep for dt_control_add_job and see if I put the jobs into the
correct queue.
The available queues are (in order of principal priority)
  DT_JOB_QUEUE_USER_FG
  DT_JOB_QUEUE_SYSTEM_FG
  DT_JOB_QUEUE_USER_BG
  DT_JOB_QUEUE_SYSTEM_BG
Jobs from DT_JOB_QUEUE_SYSTEM_FG will be dropped if the queue gets too
full. All other queues never drop jobs. See comments in control/jobs.h,
too.