work_queue: initialize members, catch exceptions in init

Ensure that member fields are initialized first.  Wrap work_queue_* in
try/excep blocks to capture any exceptions that may occur in init.

Conflicts:
	work_queue/src/python/work_queue.binding.py
Edits to make user manual consistent with README in AWE repository.
Multiple fixes for work queue:
* "cancel tasks" works correctly and no longer segfaults
* foreman nodes use the correct value for their max_tasks (current workers vs total workers ever connected)
* worker no longer disconnects after a very long running task
* work queue master logs every message it sends in the debug log when D_WQ is enabled
Fixed va_copy mixup
added vdebug() to handle the arguments as a va_list instead of a normal list of arguments.
fixes a segfault in send_worker_msg when trying to print out the worker message
added long option to specify log filesize
added volatility option to work_queue_worker, to simulate failure
with "reliability".
Check for available disk space on each pass through the main loop,
so as to handle tasks that consume space quickly on output.
Display space error in units of megabytes.

Conflicts:
	dttools/src/work_queue_worker.c
Fixed parsing to be consistent with help message: disk space limit is expressed as plain number without units.
Previous code accepted units but didn't handle them correctly.
Add debug msg when resetting execv syscall number.
Merge branch 'master' of github.com:cooperative-computing-lab/cctools

Conflicts:
	dttools/src/work_queue_worker.c
Fixed bug: buffer_printf appends to the buffer, so buffer_tostring
is not needed (and caused a crash).
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.