First pass at adding AfterStep hooks
Refactor
Refactor, rename
Got AfterStep hook working cc @tooky

Had to merge Mapper and HookCompiler so that the user mappings can be
read in a single pass

TODO:
- tidy up the specs for HookCompiler, move some over as specs for Mapper
  and delete the rest
- tidy up build_hook_step duplication
- is there a way to split responsiblity for mapping steps with the
  responsibility for compiling in hooks again? Maybe have a filter that
just collects up mappings then pass that to both hook compiler and step
mapper?
- names: mapping, mapper, etc. Also some things got renamed to compiler
  which clashes with cucumber/core/compiler.rb