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 vars.

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. The idea behind this changes is to make 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.