Renamed indicator_classes=None keyword to prototype=None.

NOTE: the term 'prototype' no makes sense as the second argument to any
isinstance() or issubclass testing ...

    isinstance(foo, prototype)

    issubclass(foo, prototype)

... where prototype can be an object (or a tuple of objects) or a type (or a
tuple of types). The Python docs provide, perhaps surprisingly, no term for the
name of the second argument of either isinstance() or issubclass(). Which
probably explains why we have been absent such a term until now.