Refactor before, after, and around hooks.

* HookCollection classes wrap Arrays instead of subclassing Array
* Procsy is a class instead of a module
  * no more extending a Proc w/ Procsy at runtime
* Includes an interesting benchmark comparing passing proc
  around using `&block` vs `block`.
Merge pull request #1101 from rspec/refactor-hooks

Refactor hooks to reduce subclassing of Array and extending Proc objects at runtime.