Created originally on Bitbucket by mattip
Improve mixing app-level classes in c-extensions, especially if the app-level
class has a
c-extensions expect all the method slots to be filled with a function pointer, where app-level will lookup following the mro for an appropriate function at runtime.
With this branch we now fill many more slots in the c-extenion type objects. Also:
fix for c-extension type that calls
tp_hashduring initialization (str, unicode types)
fix instantiating c-extension types from built-in classes by enforcing an order of instaniation.