Always add lambda to scope chain to eliminate branch in eval_scope

We convert all other scopes to lambda's so it makes sense that we should
always returns a lambda on a ThroughReflection as well. This eliminates
the need to check if the scope is a Relation.
Merge pull request #16801 from eileencodes/refactor-scope_chain-on-through-refelction-to-eliminate-branch-in-eval_scope

Always add lambda to scope chain to eliminate branch in eval_scope
Remove example file

This documentation should be in the guides.

Closes #16691
Fix potenital stack level too deep with autosave or validation

When associations checked for autosave have a cycle, and
none of them is dirty, then changed_for_autosave? will be an
infinite loop. We now remember if we're in the check and
will short circuit the recursion.