Use `DelegateClass` instead of `SimpleDelegator` for type decorators

There is a significant performance difference between the two. Closes