Correctly display exception for each failed step

Related to issue #191.
There are no tests yet and code is a bit hacky in several places.

Example:
```Java
public class MultipleFailuresTest {
    @Step
    private static void stepThatCatchesException() {
        try {
            stepThatThrowsException();
        } catch (Exception ignored) {
        }
    }

    @Step
    private static void stepThatThrowsException() throws Exception {
        stepThatDoesNothing();
        throw new Exception("fail");
    }

    @Step
    private static void stepThatDoesNothing() {
    }

    @Step
    private static void stepWithFailedAssert() {
        assertThat(1, equalTo(2));
    }


    @Test
    public void testTwoExceptions() {
        stepThatCatchesException();
        stepWithFailedAssert();
    }
}
```

Before:
![selection_006](https://cloud.githubusercontent.com/assets/2046080/4023866/45f94ea6-2bab-11e4-8952-0a10a777e662.png)

After:
![selection_005](https://cloud.githubusercontent.com/assets/2046080/4023864/13780530-2bab-11e4-8825-38620e804eb4.png)