separate some mutations from reflection construction
extract more mutations to the caller
remove dependency on @model when defining callbacks
push more mutations out of the builder

`configure_dependency` actually defined callbacks, so rename the method
and move it to the appropriate method.
pushing out more callback definitions
remove dead code
assert that constants have been set rather than the names
defning extensions happens once, no need to cache