Change compilation of hooks.

HookStep now looks more like Test::Step again. In fact, I think we may
be able to merge the classes completely.

We now have BeforeHook and AfterHook classes, which are added to the
source of the HookStep.
Refactor, folding HookStep into Step
Better specs
Refactor: namespace
Ensure hooks conform to protocol expected by Test::Step