Go purely functional, with inline value replacement.

This entirely eliminates the concept of "eager evaluation".  When a value is
evaluated, it *becomes* its final value -- i.e., it is replaced inline.

I also introduced a "void" value type, which is returned in erroneous
situations such as type errors, e.g. trying to add a string to a number.