Port even more FocusController tests.

This modifies how the test harness works so that we have a tree of
pointer so we can Destroy() part of it during one of the tests.

BUG=431047
R=sky@chromium.org

Review URL: https://codereview.chromium.org/781603002