Box variables with tags for memory allocated size.

Each makeflow variable value now has tags for its length as a string,
and total memory allocated size. This is with struct dag_variable_value.

This produced the following changes:

- To obtain the value the string value, call dag_lookup_str, rather than
  dag_lookup.
- d->variables, and n->variables now keep struct dag_variable_value,
  rather than chars.

The structure has the following associated functions:

dag_variable_value_create
dag_variable_value_append_or_create
dag_variable_value_free

This change became necessary given the massive makeflow files from Neil
Best. Now the append operator (+=) linear instead of quadratic (by
keeping the length, we do not have to compute strlen every time).  Also,
when appending to a variable, allocated size is doubled if needed, which
reduced the calls to realloc from n to log(n).

dag_variable_value_create makes evident that we need to rework how
variables are used through makeflow. In particular, we cannot always
free a value when redefining a variable, as this causes segfaults
somewhere else.