Implement equals and hashCode for ResolveSource

Useful for debugging or whatever.
Spec: must memoize when resolving substitutions
ConfigDelayedMerge.java: Fix indentation
Remove "root" from MemoKey

This was just wrong in the new setup; we change the root constantly.
The MemoKey should be per-conceptual-resolve which is per-ResolveContext,
not per-root.

This commit fixes the tests in which we failed to memoize
and thus got different results for the same ConfigReference
at different times in the resolution process.

But it breaks ConfigSubstitutionTest.avoidDelayedMergeObjectResolveProblem5.