[MODEL] Fixed the incorrect protection for existing model methods (such as `search`)

Due to the different scope in the `class << self`, the `respond_to?` condition always returned false,
even when the model had in fact defined the method in question (such as `search`).

Instead of using `respond_to?`, `self.public_instance_methods.include?` has been used.

The concrete example is eg. [Ransack's](https://github.com/activerecord-hackery/ransack) `search` method.

Closes #96