Added Assert.WillRaiseWithMessage to verify if an exception is thrown wi...

...th an especific message

I sometimes need to check if an exception of type E will be thrown with message X, example: When you have a Validate method that throws the same type of exception but with different messages and you want to check if the correct message is being thrown.

I had to create another method as the WillRaise alredy have optional parameters.

I noticed some duplicated code and did some refactoring, if something is out of the standard or you see any problems, please let me know and I will fix it.