Did the main routine in fexl.c.

Add type "bad" to represent malformed data.

Rearrange test in new_memory to avoid any overflow with large num_words.

Move conversion between string and number to separate convert.c module.

Simplify how we use the forms returned from parse.

In value.c I now check the right side before calling the type routine to clear
an atom.  I found this by experimenting with a simple "type_ping" combinator
which simply printed "ping".  When it was recycled, it was calling ping a
second time.  Now it doesn't do that because there's no atom value on the right
side.

I streamlined the eval routine.  Testing for (g != f) saves about 300 bytes of
executable size, and presumably runs faster as well.

Using Qboolean in more places, reducing code size.