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
Personally, I'd prefer to leave the splat last. Or, de-splatify `args`, so it just gets passed as an array?

Also, let's name the param something other than `caller`.