Focus gain sends focus loss through the focus stack

When a new focus owner lands on the stack, don't just make the
 previous top of the stack lose focus, propagate the loss throughout
 the stack.
Only dispatch focus loss on focus loss state change
Remove canDispatchFocus() method as it now doesn't need to be known
 (and shouldn't be known) outside of the implementation.
Fix error where the focus code for a focus gain request should
 always be a focus loss code.

Bug 8315302

Change-Id: I92c8f51fdcc090851d34d00fefed916e25da40c1
2 files changed