Context copyIfChanged(Context previous) {
            if (equals(previous)) {
                return previous;
            } else {
                return shallowCopy();
            }
        }
This is used when building the Context stack. If Context has been
changed since last time, build a new object. Otherwise simply return
the previous snapshot.

@param previous another Context instance to compare with
@return a copy of this, or previous
container-search/src/main/java/com/yahoo/search/searchchain/Execution.java