Add before and after callbacks for init

This is to be robust and for allowing mixins to define before and
after init behavior in the same way they would for run.