Ensuring postAction and tearDown gets called on Action failure

A quick patch to fix a little bug bear of mine...
I normally expect things like `PostAction` and `TearDown` to be called even if the main `Action` has failed.  This is because it is natural for me to use things like `PreAction` and `SetUp` to reserve resources and setup the environment for the `Action`.  I will then use `PostAction` and `TearDown` to release those resources and wind down the environment.  Having all that stuff hanging around after a test failure was extremely annoying!
I know I could have used `try`...`finally` within my `Action` blocks, but these constructs felt like the natural and intended place for them, hence the pull request!