model: provide prototype properties via inherit() instead of attaching to Type.prototype