I noticed that type names such as type_double and type_string implied that the
symbols "double" and "string" were defined as functions in a Fexl program.
However, these types are not defined in a way which lends itself to any
meaningful behavior as a function, and would in fact cause a segfault when the
type routine tried to free the right side, which it expected to be a pointer to
data but was in fact zero.

Therefore I needed to ensure that type_double, type_string, etc. were *not*
available as functions in a Fexl program.  Consequently I changed the naming
protocol in the entire Fexl system.

Now the only names callable from Fexl are the ones named either "fexl_<name>"
or "const_fexl_<name>".  This is easy to remember, easy to search, and it makes
"const_" look the modifier that it really is.

In addition to all of the above, I went ahead and implemented the var.c module
which provides mutable variables.