Correctly chain constructor prototypes to enable static inheritance
In ES2015+ classes it is expected for constructors to inherit the static methods of their parent class, our implementation of classes previously did not do this as it was uncommon in ES5 era classes.
This was split out from the GObject.registerType work