Use step name in backtrace and simplify the usage formatter

When cucumber-ruby-core use the row location for instantiated outline
steps, the usage formatter can be simplified. Use the (expanded) step
name in the backtrace to be consistent with the step location for
instantiated outline steps.
Handle output from hooks appropriately in legacy_formatter

Pass messages and embeddings from hooks to formatters, just before
describing exceptions (is any) to formatters. Update the debug
formatter to also catch puts calls.
Included both the expanded step and outline step in the backtrace
Update features and spec to expect the new behavior

That is that the location a expanded outline step is the row location,
and that both the expanded step and the outline step is included in the
backtrace. Update the gherkin_formatter_adapter to use the row location
for expanded steps.
Delay output from before hooks in the gherkin_formatter_adapter

Then the JSON formatter will not crash on before hooks output.
TODO: Remove this fix when the JSON formatter (in the Gherkin library)
has been fixed.
Merge pull request #730 "Use step name in backtrace and simplify the usage formatter"
Merge pull request #732 "Handle output from hooks appropriately"