Refactor to prepare for faster code using inline replacement where possible.

That new version is already tested and is extraordinarily fast by comparison.
However, I'm going there in two separate commits to keep the change logs very
clear.

Now when a type function decides that f is fully evaluated, it returns 0
instead of f.  The importance of this will be apparent in the new faster
version, which allows a type function to *alter* f in place, and return f to
indicate that further evaluation is needed.

Added some sorting tests in test/sort.fxl.

Added the exp function (exponential).

Renamed "eager" as "query", and made that available as "?" in Fexl.

Added the "die" function.

Changed rand and get to use the continuation method to return their results.
This will be important in the new version, in which "=" does NOT represent
eager evaluation, but rather a simple definition.

The get function now returns void instead of null string when the input is
depleted.

Remove unneeded semicolons from test/utf8.fxl.

Eliminate Qnum_ulong, which is not used anywhere.

Cosmetic change to putv function in type_output.c (rename f as x).

Some refactoring in type_resolve.c.

Reordered some code in type_sym.c, and sped up Qsubst.