raise_error can support a matcher on the second argument but to be consistent should be able to take a matcher on the first (as with Regexps, Strings). This change enables this behavior by trying to match flexibly on either the exception or the exception's message. This also allowed a special case for Regexps to be removed. It also fixes a bug in custom matcher created for testing raise_error's composability. #762
Also, add a shared spec that ensures each matcher uses it.