Fix bug with define

Thanks for the bug report.

Define was attempting to arity-check the number of :returns given in a
returns-specifier against the stobjs-out property of the function.

This is normally a good thing to do, but doesn't work in the case of
multiply-valued non-executable functions, because their stobjs-out property
always looks like (NIL), presumably because MV is just LIST in a non-executable
setting.

This just patches define not to do this check in the case of non-executable
functions.  I think this is about as good as we can do, since in principle a
non-executable function doesn't need to have a consistent number of return
values, e.g.,

  (defun-nx f (x)
    (if x
        x        ;; one return value
      (mv x x))) ;; two return values

This resolves #270.  There are new cases in std/util/tests/define to verify the
fix.