Remove __str__ implementations from *Hook classes. Also remove some __init__ methods that don't do anything but call super().__init__
Simplify hook.py a ton, having the decorators be classes with __call__ implemented.