Refactor Interactor#call_with_hooks

This helps pave the way for "around" hooks
Add a slightly gross implementation of "around" hooks