Refactor of the feature step, reporting and fix for the multiline background steps.

Based on the #79 and #80. There was some refactoring needed to preserve the reporting functionality.
Also removed other entry points for the "generation", "cucumber_json" and "reporting" so now it shows "bdd" on the start only once for the plugin.
Not sure. () + [] = exception. Extend is a cool function. I don't think this is a problem. Still background can be None. It is not just one getattr here.