Fix bug when handling error state

The stack operations are no-ops when the stack is in error state.  The
pops for key forms happen before the error state is cleared, so when
there was an error we have to roll the stack down by hand.
Fix a typo

Used rational where rationalp was intended.  Fixed.
Some more error state changes

Make the clear-error-state macro return non-nil if there was an error
to clear.

Some of our defined exceptions were missing from the handler, so I put
them in.
Some error-handling fixes

Fixed bad syntax in the initarg definitions for my conditions.

Made sure that the complex value test was performed before operations
were attempted on it.
Fix a formatting issue for 0.0 in scientific notation

Zeroes were being printed in a way inconsistent with non-zero values
when in scientific or engineering notation.
Accept string argument for set-display-digits

The calling context has the argument in a string.  This change checks
to make sure it is readable, then converts it to a number.
Display memory registers as well

Put memory registers into the CLI display.