Allow forced render mode for restore operations

Allows clients to progressively rerender in a depth-first manner. This minimizes the amount of time that the UI is in an indeterminate state for cases like a mismatched version.

The assumption here is that the number of differences between any given version will be relatively small so the perceived flux between a depth-first rerender and attempting to rerender from the root will be much lower.
"rerendering may befored" typo? Also, the meaning of `forceRestore` parameter is not clear from the comments.