Change process_result to calculate the expected wait time for retrieving
invalid messages.  Also changes get_transfer_wait_time() to allow for
taskless transfers
Merge branch 'master' of github.com:cooperative-computing-lab/cctools
is_executable set errno to EACCESS rather than ENOEXEC.

is_executable was setting errno to ENOEXEC when the path did not have
executable permissions. This mimics the shell behaviour without parrot.
Sets EACCES also in 32 bits.
Reset break and heap address on brk error.
Do not divert execv to dummy.

As an optimization on entering, execv would divert_do_dummy when a file was not
executable, or did not exist. However, this would cause the value of errno for
the error message to be lost on the subsequent call to execv.
Avoid segfault when interpreter not available.

When the interpreter given by \#! is not available, parrot produced a message
with 'Unknwon error' and then that process segfaulted. Now it reports that the
intepreter was not found, and continues (as the shell does).
reordered work_queue_wait internals.
order is now
1) poll links
2) handle messages (including results)
3) start tasks on non-full workers
4) fetch output
5) break if exceeded time limit
added bandwidth option to limit the bandwidth to a set value
when a new-style worker connects to the master, the master
now explicitly requests an update, which tells the worker
that it is talking to a new-style master.

the worker also now resets to operating as an auto-detect or classic worker
when it disconnects from the master.
ensure initial update gets sent
Currently, we don't catch failures when processing a received message in
recv_worker_msg(). This fix changes recv_worker_msg() to return failure if the
processing fails.