Fold FULL worker state into BUSY.
1. Remove redundant total_workers_connected field which is same as size of worker
table.

2. total_worker_slots is deprecated in WQ stats and will reflect the number of
running tasks as default. total_workers_joined is similary deprecated and will
reflect size of worker table.

3. count of workers will reflect init + ready + active workers
Remove the worker states. Instead, use counts of known_workers which tracks all
workers that have identified themselves and available_workers that track workers
that with available resources. These are used in WQ stats, debugging, and places
where we need to know if workers are available for running a task.
Fix bug where we would try to dispatch a task immediately even if there are no
available workers. Thanks to Ben who noticed this.
Keep old log format that prints workers_full for backward compatability. And
mark workers_full as deprecated.
Removes scripts use of TARGET.Memory. User can still use TARGET.variable and it will override defaults.
As a band-aid until #276, busy workers will reflect those running at least 1
task, while ready workers will represent its complement.
Have Parrot report EINVAL on negative offsets.

Suchandra Thapa reported that Parrot gets in an infinite loop when lseek is
passed a negative offset. This is due to Parrot setting the offset to a
negative value and then returning the offset, which is interpreted as an error.
For this case, Parrot interprets certain negative ranges as an EINTR by
default, so it retries forever.

The solution is to check for negative offsets and return EINVAL as appropriate.

Fixes #297.
Merge pull request #291 from btovar/wq_deadlocks_2

Modified protocol for the transfer of task stdout from worker to prevent deadlock in the master-foreman interactions when both are streaming data:
1. Workers do not send results immediately, now they send a message "available_results".
2. When master sees "available_results", it pushes the worker into a list.
3. Eventually, the master goes through that list, sending "send_results n" to the respective workers, and waits for the workers (one by one) to respond. n is the maximum number of results to send. n == -1 means send all.
4. workers respond with at most n result messages, and a final "end" message.
Bump to 4.2.0
Merge branch 'condr_sub_req' of git://github.com/nhazekam/cctools into nhazekam-condr_sub_req

User can still use TARGET.variable and it will override defaults. This does not prevent backwards compatibility, but users will receive warning of obsolete usage of TARGET.Variable, such as Memory or Disk.
Merge branch 'master' of git://github.com/dpandiar/cctools into dpandiar-master

Remove worker states and some cleanup.

Remove worker states.
Clean up various worker-related counts.

Conflicts:
	work_queue/src/work_queue.c
Merge branch 'wq_pool_fixes' of git://github.com/btovar/cctools into btovar-wq_pool_fixes

Documents wq auto pool. (Still missing billing_cycle and worker_termination_boundary, I'm looking for simpler explanations.)
Sanity check on min_workers.
Cleaned parsing of options.
Fixed show_help.
Deprecates -a.
-c implies -A
Fix bug in idle timeout for foreman.
Add option to print WQ stats.
Throw error on duplicate remote filenames only if their local filenames are different.
For output files, check for the case where two different remote files are being mapped
to the same local filename.
Remove checks for the return value of specify_file() so the example is backward
compatible with older versions of our software.
Whitespace.
Include libwork_queue when linking.