This is something I originally added for being able to hook into extend. For example, the `User` model in loopback adds `beforeRemote` calls to intercept invocation of several methods. `beforeRemote` is a static method on the super `Model` class and needs to be called on the actual constructor to avoid creating hooks on unrelated classes.

The only way I could concieve of doing this was to add this setup hook while subclasses are being defined. Then you can do anything you need to interact with a new constructor in the `setup` method.

Its a really horrible idea and lead to a couple bugs already. I'd really like to remove it and implement a more elegant `extend()` behavior in loopback. But that depends on `extend()` supporting this in the juggler.