Perhaps rather than do all this, it would be better to make a `TableMixin` abstract base class with this all marked as abstract methods/properties as appropriate.  With the appropriate `TableMixin.__subclasshook__` classes that we want to use as Table columns don't even need to subclass `TableMixin` directly (as is currently the case).