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.
Initializes chirp path when using -Q quota.

Fixes bug as reported by Austin Walker. chirp_root_path was being initialized
after its first use when using -Q for enforcing quotas.
Merge branch 'master' of github.com:cooperative-computing-lab/cctools