No parser errors when incorrect number of args

This should be the job of the type checker, which can give much nice error
messages. However, due to an idiosyncracy in the language where the _parser_
needs to know the type of the arguments to a comp function in order to parse an
actual argument as either an expression or a computation, if you provided in
invalid number of arguments you actualy got a rather unhelpful parse error. We
now relaxed the parser so that it accepts fewer arguments than in the type of
the function, and it also accepts _more_ than in the type (by assuming that
they others must be parsed as expressions, rather than computations -- which is
what we do for functions with an unknown type, too). Note that we will still
give an error message if the extraneous arguments happen to be computations
rather than expressions. We could fix that by parsing _either_ expressions or
computations, and letting the type checker handle any discrepancies, but this
wasn't done before either so I haven't made that change for now.

This closes #034.