[WIP] only check for formatters on instances

use inspect.isclass to disallow unbound methods, not type checking on the method itself.

This closes #6080, but I'd like to get enough information to either address #7003, or at least decide that it's not feasible for now.