improve generic method default error message

- correctly report position of bad self arg
- also report other required and optional args (but not kw)