Baby steps execution refactoring

@mattwynne @tooky as we discussed yesterday here is a PR with some ideas of baby step which can be done in several classes independently.
I've implemented execution in term of units in Feature (using temporary class FeatureUnit) and replaced part of its execution with BackgroundUnit which is temp class unit we implement background execution in term of units.
So, what do you think?

On the way two questions I've got:
* why step_count thinks that we execute background for every scenario, but background is executed only once per-feature
* out current formatter's API provides before/after callback which means that we either need to add separate units for these calls, or units' structure should reflect ast hierarchy (I think we still want to have these callbacks)

Ideas?