Add expectRootCause to expected exception rule, fixes #714

Adds an expectRootCause test, which tests a matcher against the root cause of the thrown exception, rather than just the first-level contained cause matched by expectCause.

I've also updated the expectCause docs & errors to refer to 'immediate cause', to try and differentiate the two cases.