2880: crunch-dispatch must stop putting symbols in the database.
2880: Improve error reporting when crunch-dispatch updates node status.
2880: Don't dispatch Jobs until runtime constraints are met.

This retains the same FIFO approach to the Job queue that
crunch-dispatch currently uses, but now when it encounters a Job whose
constraints are not met:

* it may wait for a while to see if the Node Manager makes Nodes
  available, if it hasn't done that this hour; and

* it leaves that Job in the queue and tries to process the next one.

See #2880 for further background.  The exact parameters of "waiting
for Nodes" will probably need tuning, but that will be easier to do
after it's been in production for a while.
Merge branch '2880-crunch-dispatch-node-constraints'

Closes #2880, #2976, #2993.