Fix a lisp error in the translator involving variables of mode rational
When a variable was declared to be of mode rational, a lisp error
would occur during translation when attempting to convert it to a
float via DCONV-$FLOAT. There was an assumption in DCONV-$FLOAT
that the cdr of its argument was a list when its car was the symbol
$RATIONAL.
Two examples are
foo (x) := (mode_declare (x, rational), float (x))
bar (x) := (mode_declare (x, rational), 1.0 + x)
Attempting to translate either of these would cause a lisp error
during translation.
It appears that this has never worked in Maxima under Common Lisp,
although it worked "accidentally" under Maclisp. In Maclisp no error
checking was done in CAR and CDR calls in compiled code (there were
CAR and CDR variables to control the behavior in interpreted code),
so if Macsyma was compiled and calling CADR on the argument to
DCONV-$FLOAT didn't return the symbol QUOTE, then this translated
correctly.
tests/rtest_translator.mac runs as expected, with a new test.