Changes for bug 2085440



Bug 2085440
<http://sourceforge.net/tracker/index.php?func=detail&aid=2085440&group_id=4933&atid=104933>;
points out that compiled functions don't handle incorrect number of
arguments very well.  This is because the checking for the number of
arguments is done by the underlying Lisp implementation, and that varies
greatly.  However, when the function has optional arguments, the
compiled version works better and actually prints out a little nicer
error message.  Unfortunately the error message is inconsistent with
what the interpreted function prints.

I've taken a closer look at this, and have fixed it so that compiled
functions will now check the number of arguments and prints out the same
error message as the interpreted function does.  I think that's nice.

However, there will be a slight cost in speed and consing for functions
that have a fixed number of arguments.  So that maxima can do the
checking, the compiled function now takes a &rest arg which we can check
for the number of arguments.  Previously, the compiled function had
exactly the desired number of arguments.

I think for consistency, it's nice that the compiled function works the
same as the interpreted.  But we do pay a little in speed and consing. 

If no one objects, I'll check in the change soon.

Ray