runner: pushes a global context on the context stack.

This will enable us to write global before_each and after_each.
'describe' and 'it' tells its parent context that execution is starting.

If 'before_each' or 'after_each' is called after execution is
started we cannot guarantee that they're called properly for all
tests. Some tests might have been run before bandit knows about
before_each/after_each. By setting the context to 'executing' we
can warn if b_e/a_e are called.
context throws an error if before/after each registered when executing.
'describe' reports test run errors.
reporter reports test run errors.
reporter: did_we_pass()

Returns the status of the complete test run.
bandit executable error levels

bandit returns 0 for a successful test run.
It returns 1 when there's been failed tests or test run errors.
It no longer cares to return number of failed tests as this information
is gathered from the test report if needed.