A bit of refactoring and renaming
Reverse the filters so that mapping is done last

This ensures that we don't bother mapping for test cases that have been
filtered out.
Add debug filter to dump out compiled test cases / steps
Be explicit about which visitor will walk the next part of the tree.

RSpec 3.0 is unable to correctly report blocks with optional paramters
that are yielded by stubbed methods.

This was causing a number of failures in this test suite.

We had the option to continue walking the tree with the original
visitor, or to pass in a new visitor to the `descend` block.

I've removed that option - if the original visitor wants to continue
walking the tree, and not use a child visitor, it can just pass itself
in.

I think this makes the describe_to code a little easier to parse?

cc: @tom025 @mattwynne
Use `be_truthy` and `be_falsey` in specs

RSpec 3.0 has depreceated `be_true` and `be_false`.
Remove redundant clause from TAG_MATCHER.

`\w` already matches `\d`

```ruby
"5" =~ /\d/ # => 0
"9" =~ /\w/ # => 0
```

Prevents `warning: character class has duplicated range`
Rename `shadowing outer local variable`s.
Add `Test::Case#step_count`

RSpec have matcher used `__send__` to access private test_steps
collection :(
Fix RSpec version to ~> 2.99.

Nearly there with RSpec 3.0 support, but there's a strange error in
core_spec - seems the rspec receive implementation may be different
between 2.99 and 3.0?

cc @mattwynne @tom025
Add skipping the rest of a test case.

A mapping that raises Result::Skipped will skip that step and all
subsequent steps for a test case.

cc @tom025 - we think we should now be able to push all dry run logic back
into the front end.
Remove StepRunner::DryRun

Responsibility for managing `--dry-run` has move to the front end.
More consistency
Merge branch 'master' into after_hook_after_failure

Conflicts:
	spec/cucumber/core/test/runner_spec.rb
Get rid of dead hook compiler code