Cleanups and enhancements

Recent changes have obsoleted a lot of code written earlier.  Once we
decided that all operations that could be performed with rationals
would be, some code was replaced, and much was simplified.

Added a function that will allow us to round off results to exactly 10
decimal digits, as the calculator would.  Having too much precision
can be as damaging as having too little, from an emulation standpoint.
Modified the rnd function to use new methods

The "rnd" function now uses the rational code written in
display.lisp.
Enforce rationals in the stack

We now ensure that the stack contains only rational numbers, rounded
to the display precision.  To avoid subtle errors with the promotion
of rationals to single-precision floats, code checks incoming numbers
to see if they are single-precision (that is always a bug), and errors
out if that's the case.

Consumers of the stack or memory must now specify whether they want
rationals or double-precision floats.
Bug fixes

Added a method that allows easy inspection of the forms created for a
key.  Spotted some bugs and fixed the parser code accordingly.
Changed some key definitions

Following bugfixes in the parsers, edited a few key definitions for
brevity.