Added option to -D to create a .ppm representation of Makeflows
Merge branch 'master' of github.com:cooperative-computing-lab/cctools
Switched dag_lookup and dag_lookup_set definitions.

dag_lookup was constructing the set, and dag_lookup_set was doing the
variable lookup.
Return NULL for var substitution if undefined dag
New lexer with make syntax.

The new lexer adds some flexibility in the syntax that vanilla make has,
such as:

- Comments and new-lines can be escaped with \
- The above means that all input to makeflow can be multiline.
- Single quotes are taken as literals.
- # does not have effect inside double quotes.
- Recursive expansion of variables.
- Shell expansion when a variable is defined with !=
- Uniform filename lexing. That is, the same rules apply for
  the list of requirements and redirection in command line.
- Variable substitution can be written as $VAR or $(VAR)

This commit is only about the lexing part, thus all of the above is not
yet available in the parsing stage.
Change makeflow to use the new struct lexer_book.
Remove current task from w->current_tasks table only after output from worker
have been fetched successfully. This fixes a segfault when the retrieval of an
output file fails and the worker is removed.