Tests exception names and reasons instead of using the exception class matcher

The format which was previously used to test exceptions was meant for testing the exception class. An example use case would be 
`^{ ... } should raise_exception([NSInternalInconsistencyException class]);`
In order to test the actual contents of an exception, `.with_name( ... )` and `.with_reason( ... )` must be used.