Include location handling for outline step.

This is needed by some formatters in cucumber, specifically the html formatter.
Add location to Ast::ExamplesTable::Header.

This is needed by the html formatter so that it can produce dom ids.
ExamplesTable::Row has location.

This is needed for the html formatter so that it can produce dom ids.
Merge pull request #24 from tom025/add-location-to-scenario-outline-step

Add location methods to some Ast nodes
Add comments

@tooky I'm being lazy and did half a job of adding comments to
Gherkin::Writer

Do you think it would be better as a statement? Can you show me how to
do that?
Fix equality bug for ExamplesTable::Row
Add comment statements to gherkin writer

@mattwynne this seems to work reasonably well. It's starting to get a bit hacky
though! We add comments before we create the element of a document, e.g.
`Feature`, `Scenario` etc.

This means we have to hold on to the comments, and give them to the element on
creation.
Tighten up equality check
Match spec to new writer DSL
Refactor
Add basic location matching to test cases
Refactor
Clean up tags
Refactor
Fairly major re-jigging of the AST interface.

Highlights:

- comments and tags are now just held in arrays on the nodes
- Ast::Comment now represents a single line rather than the whole block
- match_location? method added to Test::Case and AST nodes so we can
  filter on location

We really need to tidy up the AST node attributes soon.
Remove dead code
Match multiple locations at once

So we can filter based on file:line:line:line from the GUI
Add one spec for matching multiple locations
Allow passing of argument to select run mode.
Skip passing test steps in dry run mode.