Add child windows to their parent WindowToken

Previously child windows were contained in their own WindowToken
and also added to the parent window AppWindowToken.allAppsWindow.
This complicated the token organization within WM as it was sometimes
confusing which list to use WindowTokens.windows or appAppsWindow which
led to many bugs fixed and still existing. I can't think of a good
reason why the child windows just can't be tracked with the parent token
so we will do that and fix whatever bug may come.
This paves the way to consolidate WT.windows and AWT.appAppsWindow list
since they will contain the same entries now and also fits in with the
hierarchy model we will be using with WindowContainers.

Also
- Removed WindowState.mRootToken since a window and its children will now
be in the same WindowToken.
- Fixed NPE in WindowState.getTopParentWindow()
- Temp. workaround to not re-add child windows in WT.reAddAppWindows since
WindowState.reAddWindowLocked() will re-add any children of the parent
window we are adding. Workaround can be removed when the class is switched
to use WindowContainer.

Bug: 30060889
Change-Id: I604ba4cce9ff8df4e81353cb648d6f54aa27084f
6 files changed