Limit the methods of the `Hooks` module to just the public API.

Since this is mixed into a context where users write
code and define methods, we want to limit the number
of methods to just the ones that are part of the public
API.  The rest of the methods belong on the `HookCollections`
class better anyway.
Re-arrange code to put the public API at the top of the file.
Clarify which classes in hooks.rb are considered private.
Remove unneeded one-line helper methods.
Merge pull request #1186 from rspec/refactor_hooks

Refactor hooks