stepdefs.json
Reduce coupling to instance variables
try moving code for executing scenario onto tree walker
Decouple from @steps
Remove spurious call
Simplify how feature is set on feature elements
Remove more dead code
Reduce coupling to instance variable
Extract method to build this examples table thing
Reduce coupling to instance variable
Refactoring AST. Big commit.

This turned into a monster as I discovered a hideous method in the HTML
formatter that was coupled to loads of the internal structure and ivars
in the AST.

I've replaced this by building the beginnings of the way forwrad - a
`Cucumber::Unit` class which represents each test case to be executed at
runtime, whether it comes from a regular scenario, or from an examples
table row.

Right now, the `Unit` is only used for counting steps (to replace the
hideous code mentioned above) but I'm expecing it to attract more
behaviour as this refactoring continue.