Move tree walk to Widget and use recursion instead of loop.
Change FocusBehavior and its tests to use the widget walk methods.
Ensure we don't call walk on window, by checking if it's not Widget.