segfault fix for work_queue_pool: when parsing catalog wq_master name-value pairs, check if "project" is reported before copying its value.
Restore execve scratch only when it is modified.

The scratch is modified only when the executable is found. Without this
explicit case, we get 'Unknwon error' from execv. Mostly harmless, but
confusing.
Avoid segfaults from reading old results messages.
Ignore wrapping vdebug(). This is because vdebug() uses va_list as argument and
SWIG doesn't know how to wrap such
functions: http://www.swig.org/Doc1.3/SWIGDocumentation.html#Varargs_nn8

This should have the Python and Perl WQ bindings correctly built again.
Check that parrot's p->break_address is valid.

For some reason, p->break_address sometimes points outside valid memory maps.
This causes execve to try to execute invalid filenames, generating "Bad
address" errors. Until we figure out why that is, now we check if the address
is valid, and if not, then we find the arguments scratch space with the
fallback function.
Merge branch 'master' of github.com:cooperative-computing-lab/cctools
Report whether break is valid only when debugging.
Merge branch 'master' of github.com:cooperative-computing-lab/cctools
Instead of disconnecting a worker that sends an unidentified results message,
ignore the message and soak the result's standard output

This is for when a worker has been reset but had already sent a result message
to the master (usually a foreman).
Change process_result to calculate the expected wait time for retrieving
invalid messages.  Also changes get_transfer_wait_time() to allow for
taskless transfers
Have worker disconnect from master instead of aborting when simulating volatility.
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.