Don't Run Feature Hooks If No Feature Scenarios Run

Feature scenarios may be precluded from running because of their
tags or a filter specified using the --scenarios command line argument.
It may be the case that no scenario in a feature runs at all. Previously,
the before and after hooks would still run in that case. This can be
problematic, as the hooks may be used to perform expensive set up or tear
down steps, which would run pointlessly if the scenarios that depend on them
don't run.

Change the behaviour so that before and after feature hooks run only if
scenarios in that feature run.

Testing: Added unit tests