Add consuming_class and consuming_object functions

Splitting up consumer_of into consuming_class and consuming_object.

It was apparent consumer_of will be difficult to extend since %methods
swallows everything, so the new function used named arguments.
consumer_of should continue to work as-is for the foreseeable future,
but it will probably miss any new features.