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.
Clean up some inconsistencies with worker states and running tasks
changed -f option to also take a range of ports low:high
added check to make sure foreman_q is created when in foreman mode, or exit with a failure message.
Merge branch 'master' of github.com:cooperative-computing-lab/cctools

merge in Dinesh's changes to my edits
Add python binding for enabling master capacity measurement.
Added option to -D to create a .ppm representation of Makeflows
Merge branch 'master' of github.com:cooperative-computing-lab/cctools