Fix setStackRoot crash when called with the same id (#5154)
When a Stack’s root was set with an id of one of the Stack’s current children, there was a crash
since the wrong elements were removed from the stack.
This commit fixes this by creating a new stack when setStackRoot is called, and destroying all ViewControllers from the previous Stack.
Fixes #5117