Add around hooks

:warning: :construction: Review appreciated. Still pending README update.
Reversing them is specific to this implementation of how they're run here. That implementation could change. I think it makes sense to push onto the array of hooks because that's the order in which they'll be invoked. I'd rather reverse them once when run rather than any time the `around_hooks` method might be called.

It's late. I don't know if that makes sense. :sleeping: