Added method that allows a wrapped scope to be evaluated within the correct scope.

Currently, the `current_scope` when a wrapped scope body is `call`ed is always retrieved by the class in which it was originally defined. This means that a subclass of a relation that tries to evaluate that scope will return the same result as if its parent class evaluated that scope. In other words, that results will contain all passing records that are in the parent's relation, not just those of the subclass.

This change is meant to be applied atomically with https://github.com/rails/rails/pull/15355
Yeah, the `#deprecated_result` was an oversight on my part. I'm okay with moving the body of `#warn_deprecated_result` into `#deprecated_result`, but I'm not sure this will exhibit the exact same behavior as the previous `#call`. See line 49.