Feature/variable annotations

With the @OutputVariables and @RequiredVariables annotations extra information can be provided per teststep.

RequiredVariables specify which variables are implicitly assumed to be present in the context (i.e. they are not specified in the @When, @Given, @Then annotation).

OutputVariables specify which variables are stored in the context by the step. These variables can then be used (either implicitly or directly) by other steps.
Use `String[] value`. This way you can write: `@RequiredVariables({'foo','bar'})`