Added a hook on SLTest exposing failures that are encountered during a test run.

We'd like to display some more debugging information about a test failure when it happens, so we've added a hook to support this.
I admire the impulse to keep `SLTest` as stateless as possible though it does make naming this method tricky, haha. 

What do you think about `-reportFailureWithException:inPhase:withTestCaseSelector:state:`? The idea being to keep the test state parameters contiguous. This mirrors `SLTestFailure`'s initializer too.