Fix `include` matcher so that its matcher-detection logic is more robust.

- Don't treat an object that responds to everything (such as a null object
  double) as a matcher.
- Don't treat an object that responds to #matches? but not other parts of
  the matcher protocol as a matcher. `#matches?` is a common enough method
  name that it's easy to imagine domain objects that define this method
  but are not intended to be used as rspec matchers.
- Ensure both old and new style matchers work.  It used to be `failure_message`
  but changed at some point to `failure_message_for_should`.

Fixes #211.