Issue title: Add assertions for Throwable
 Issue body: When you want to check the exception that has been thrown in a block you often want to verify the message.  So I defined this:
```
val <T : Throwable> Assertion.Builder<T>.message: Assertion.Builder<String>
    get() = map(Throwabl38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5message).isNotNull()
```

so that I can do this:
```
expect { doSomething() }.throws<IllegalArgumentException>().message.contains("whatever")
```

Maybe that would be something useful in strikt?

 Comments: 
 Comment 0: Perfect
{'source': 'GithubIssues', 'repo_name_with_owner': 'robfletcher/strikt', 'issue_id': 349712372, 'repo_stars': 419.0}