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.

Before:
![selection_004](https://cloud.githubusercontent.com/assets/2046080/4023714/bbb750e4-2ba0-11e4-931a-9e8ce3c85f6c.png)

After:
![selection_003](https://cloud.githubusercontent.com/assets/2046080/4023693/f33be17a-2b9f-11e4-9842-b2ec7e5a11b8.png)