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
The warning wasn't produced here in the original implementation, but would be if we combined `#warn_deprecated_result` and `#deprecated_result`. This would happen if `@scope` was a `::Hash`.