Support arity of overloaded operators

... at least somewhat.  Currently all values near TOS must be of the
same type.  Overload dispatch should be as fast as possible, so it
doesn't seem desirable to have anything more generic in.  But possibly
we could have a template where arity is a parameter, and make exactly
the right amount of checking depending on that.  Or maybe some other
compromise.  This is bound to come back later.