Raise a TypeError instead of a RuntimeError when passing in a non-function/method.

Add some clarification in doc strings.