Fix multiple invocation of the `before` function and `before` tracing

1. The `before` function had been called twice, once with proper tracing and error
output redirection and once directly. This is fixed now.

2. The result output was moved out of the inner subshell. This is necessary
because: in case the `before` function has an error, roundup's error trap is
triggered and the inner subshell is left. Still, we need a proper result ouput.

3. A test case with a broken `before` function was added which gives
the following output:

  roundup before trace
    it_works:                                        [FAIL]
      + false
      exit code 1

for the following before function:

  before () {
    false
  }
filter tests with exclude and include patterns Fixes #21
Merge remote-tracking branch 'dfs-sh/before_tracing_fix'