RFC: kw arg printer

fix #4469, fix #2758, reopen #5230

This extract keyword argument information from the method cache. It would ideally be fixed later to use less auto-detection in a later cleanup effort, for better precision (to handle `...` vargs), but this could be helpful anyways in the short term. (theres a few other small fixes in here that I noticed while working on this).