Die immediately on any serious error.

Formerly I was attempting to catch serious errors such as out of memory, out of
time, syntax error, or undefined symbol error, and bubble those up by returning
0.  That was wrong-headed.  It's better and vastly simpler for the code to die
immediately.

I removed all the internal checks on number of steps, amount of memory used,
and depth of stack.  Instead, I now call "ulimit" to impose limits on a Fexl
program from *outside* the code.  That also vastly simplifies the code.

The drop routine in value.c now does an eager recursive drop, instead of lazily
clearing values only when they're pulled from the free list.

I renamed "bad" as "void".  The term "void" better expresses the absence of a
value.  Also, the word "bad" slightly alarms my dog.

I moved the standard context out of fexl.c and into a separate context.c.

I eliminated "catch".  That doesn't apply any more.

I created a separate type_T so we can distinguish boolean T from C.

I don't need an is_atom function because I can just compare the types.