Correct issues with Step Failure Analysis

Store cause in WebdriverAssertionError. This allows it to be checked in FailureAnalysis.

Modify FailureAnalysis so that it will return Failure if the error is an AssertionError (or subclass), or the error is a WebdriverAssertionError and the cause is an AssertionError.

All other scenarios will return Error.