Add API to specify disk, ram, and memory.
Add work_queue_task_specify_command so that command can be added to that task after the object is already created.
Added basic tracking of cores, disk, and memory by the worker
so that they are periodically returned to the master, and then
summed up by work_queue_get_resources.
Foreman now sums up the resources available in the queue,
and sends that to the master.
Updates are only transmitted to the master when they
are different from the previous update.
Merge branch 'master' of github.com:cooperative-computing-lab/cctools into wq-resources

* 'master' of github.com:cooperative-computing-lab/cctools:
  Add option to enable printing of WQ stats for foreman to a log file.
  Forgot to commit the change to header file for adding reporting of total_worker_slots.
  Track the number of worker slots for reporting in work_queue_stats.
  Add options to enable capacity measurement and fast abort in foreman.
  fix bug in shrimp workflow visualization on linux
  add version 1.0.0 of resource_monitor_visualizer
  Remove unused clean_mode arguments.
  Send keepalives when workers are in 'full' state as well.
  properly handle INCLUDEROOT in searches
  present . and .. in search results
  fix segfault in foreman when both the task and the link fail.
  Return 0 when we process a keepalive message.
  Undo accidental change to wq_minimum_transfer_timeout.
  Remove current task from w->current_tasks table only after output from worker have been fetched successfully. This fixes a segfault when the retrieval of an output file fails and the worker is removed.
  Fixed more bad permissions.
  Fixed some bad permissions.
  Corrects a misunderstanding in fd2079b89fed3ed8cf62e96951ee3f96af1a8acb which fixes a bug reported by Austin Walker.

Conflicts:
	dttools/src/work_queue.c
	dttools/src/work_queue_worker.c
Dispatch tasks to each worker, up to the number of cores available.
Track the memory and disk used along the way.
Advertise to the catalog the total resources available and in use.
Eliminated two information transfers that cause trouble:
- Master should not be querying the catalog to enforce pool decisions.
- Worker need not reveal the pool name or the workspace to the master.
Cleaned up chatty debug messages.
Fixed broken ready message.
Updated copyright boilerplate.
Cleaned up handling of ready and resource update messages.
Dynamically allocate worker properties, to save some memory and avoid boundary problems.
Always assume worker is asynchronous.
Moved work_queue_get_resources to work_queue_internal -- not sure if this is going to be a public API.
Removed master_mode setting -- always report to catalog if project is set.
Removed task_status, which is not sufficient to reflect multiple tasks running.
Task is now transmitted as a package that indicates resources
and file dependencies, separately from the actual file transfer.
Converted several short timeouts to long timeouts for robustness.
Fixed utterly broken command line.
Cleaned up the debug output by routing all messages in and out
through send_master_message and recv_master_message.