Handle output from hooks appropriately

Update the legacy_formatter to pass messages and embeddings from hooks to formatters, just before
describing exceptions (is any) to formatters.

- [X] Update legacy_formatter to pass hook output to formatters
- [ ] Update the formatters to handle the hook output appropriately

For instance the Pretty formatter currently print output from the before hooks after the first step, and output from the AfterStep/After hooks are delayed to the next step/scenario.

The big show stopper is that output from before hooks makes the JSON formatter crash ("[] not defined on NilClass") in the gherkin library. A similar problem when using Cucumber-JVM has already been identified: cucumber/gherkin#289