This is necessary for the composable matchers support. To work properly in cases like this:

``` ruby
expect(list_of_objects_of_different_types).to include( some_matcher )
```

...`some_matcher.matches?` needs to return `false` rather than raising a `NoMethodError` when asked to match against an object that doesn't implement the interface it expects.  To support this, some matchers now include a `respond_to?` check in their implementation of `matches?`.