Ensure that Reset on outermost block is called for every nested grandchild

This test-structure failed to invoke the outermost reset while iterating the grandchildren of the main-block:

```go
Convey("A", t, func() {
    Reset(func() {
        // This is skipped when done testing C,
        // it is only run after invoking A -> B -> D

        // Should be invoked after C, before second run of A
    })

    Convey("B", func() {
        Convey("C", func() {})
        Convey("D", func() {})
    })
})
```

Included test for this particular issue, and all tests pass.