TR: better keyword errors

Produces better errors when arities don't match up for a keyword function definition. I plan to make an equivalent change for optional argument functions too later.
I'm not sure that refactoring makes sense here, since the end result is two lists. Doing the processing over the `(attribute mand.kw)` and `(attribute opt.kw)` doesn't really help because they contain the same kind of data.

That is, both lists can contain both mandatory and optional keyword arguments. The name is referring to whether the positional arguments are mandatory or optional.