Adds `with_message` to the `raise_error` matcher

* Should the exception be a different class?
* Do we need more spec coverage of different combinations of with_message and the other args raise_error takes

Fixes #344