Introduce Feature annotations

- @Features : Class level annotation that allows for the configuration
of .feature, .stories, .story, .gherkin or, if none of the previous,
then the actual giben file name.

- @Feature : Field level annotation that allows features to be set in
string fields.

In addition, there were several improvements and code clean-up /
erorganization.