WeirdMethodLocator is used by Pry::Method.from_binding() to locate the
method captured by the binding when the naive approach fails (i.e method(binding.eval('__method__')).
"WeirdMethods" include methods defined on the superclass to the 'self' of the binding, as well as methods
that have subsequently been renamed/replaced.
We also move Pry::Method::Disowned to its own file (disowned.rb)
/cc @ryanf the following used to cause exceptions: Pry::Method.from_str("NonexistentClass#method", binding)
I just wrapped from_str in a rescue Pry::RescuableException