Report result "undefined" as "skipped" in JSON

because "undefined" is used from skipped and missing tests
Implement also step-code location for JSON output

it is accessible also in in attribute "matches"
 in Test::BDD::Cucumber::Model::Result