prelim focus behavior.
Add docs, provide link function, add overwrite in autopopulate, fixup.
Add focus behavior example to examples.
Add to de-focus on escape.
Remove autopopulate, instead walk the tree dynamically to find next/previous focus if not specified in focus_next/previous.
Update the example to reflect changes.
Add forward and backward iterators to iterate the widget tree.
Add unit tests for testing the widget tree iterators.
Change FocusBehavior to use the widget tree iterators and squash the code.
Change the focus example in examples to show full prowess of focus (including root/layout focus).
Remove link/unlink_focus in favor of setting the other side of the link automatically.
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.
Use the WalkTree string instead of None to signify walking the tree, and use None to indicate stop.
Use StopIteration to indicate focus to stop, and None to walk children tree, similar to what it was above.
Merge pull request #1909 from matham/focus

initial focus behavior.