initial work on better arity-mismatch errors

- Extend methods to also follow the (λ (loc) ...) pattern of getting a location
  as a first argument for error reporting.
- Change compilation of methods and functions to create a (λ (loc) ...) whose
  body is a case-lambda.  The rest (varargs) case of the case-lambda calls
  arity-error with the location of the application.
- Needed is some cleanup of the helpers that tie the method/function loop for
  _fun and _method