Make abc.ABC a regular class by making __instancecheck__ and __subclasscheck__ class methods

I think I was anticipating that the necessary distinction between “subclass of abstract base class” and “subclass of ABC” could be handled by the definition of __subclasscheck__, and ABCMeta was defined because it was the simpler option. But if the distinction is truly impossible (or at least undesirably messy), then yes, I would argue for moving the machinery into type itself.