Added support for hook sets

These new hook sets is a very simple way of overriding functionality all over
the app. It requires no default configuration, but if you want to override some
functionality (initial email sending) you can define your own AccountHookSet
class and it will act as if your code is injected in DUA.