Use the location of the row for instantiated outline steps

When steps are instantiated from outline steps, they get the location of the row (instead of the location of the outline step). 

To make sure that a test case of an example row still matches the steps of the Scenario Outline, the instantiated steps know of the outline step that created them.

Merge only after cucumber/cucumber has been updated to expect this behavior (cucumber/cucumber#730).
You are right, the outline_step field is only relevant for steps created from outline_steps, it will be nil for 'normal' steps. Its only purpose is that the step created from an outline_step should still match the location of the outline_step, so that in turn the test_case still matches the locations of the steps of the scenario outline. A different class could be a better choice.