Add around hooks

:warning: :construction: Review appreciated. Still pending README update.
> I think it makes sense to push onto the array of hooks because that's the order in which they'll be invoked.

Aren't they being invoked in reverse order though?  And we already `unshift` after hooks because that's the order we want to run them in.  Maybe that's a different case, however, and makes more sense.

> I'd rather reverse them once when run rather than any time the around_hooks method might be called.

:+1: 

> It's late. I don't know if that makes sense.

Agree.  Already decided it's too late for me to dive into the spec diffs when my eyes started to cross...

![giphy](https://cloud.githubusercontent.com/assets/63003/4608400/19202c74-527f-11e4-8280-44ce4bc0c00c.gif)