Removing explicit checking of object's private methods

This PR changes predicate matcher behavior to no longer inspect an object's private methods using a call to `private_methods`. Calling `respond_to?(:method, false)` should exclude private methods from searching. This does reduce verbosity when reporting on expectation failures; however, this will correct an issue by which RSpec causes side-effect errors when trying to call a predicate.
This line is a bit hard to parse with how long it is, the fact that it has the trailing `unless` (that you don't see with out scrolling) and the embedded conditional in the string interpolation.  I find this much clearer:

``` ruby
def validity_message
  return nil if predicate_accessible?

  msg = "expected #{@actual} to respond to `#{predicate}`"
  msg << " but `#{predicate}` is a private method" if private_predicate?
  msg
end
```