An accessibility tree update with two roots should be rejected.
If an AXTreeUpdate had two root nodes, the second one would cause the
first one to be deleted, but that could leave dangling pointers in
|pending_nodes|. Fix this by first ensuring that |pending_nodes| is
always cleaned up when nodse are deleted, but also by specifically
returning an error if we encounter two root nodes since that should