Bump version to 3.1.0.pre to prevent confusion with master being 3.0.0 but 3.0.x releases are out.
Whitelist RaiseError for rubocop class length.

...rather than having such a large global setting.
Fix arity check for yield matchers.
Fix warnings produced by output matcher.
Expand shared examples so that it shows chaining both ways.

- matcher.and other
- other.and matcher
- matcher.or other
- other.or matcher

This is in prep for supporting compound block expectations (#552).
In that case, the ordering of the matchers can matter.

However, adding these additional specs triggered a very odd
bug on 1.9.2/1.9.3 where `String#match` returned a boolean
value rather than a match data object as expected. Switching
to `Regexp#match` seems to have fixed it.
Support compound block expectations.

For #552.