Fix some visibility issues with tasks & task overlays

- Make the overlay host surface visibility mirror the actual visibility
  of the task.  Currently WM may show the task surface prior to any
  children being shown, which can lead to a flash of the overlay when
  launching tasks
- Also prevent the task visibilty from being clobbered by the Shell when
  a task changes windowing modes.  The task visibility is updated by WM
  in Task#prepareSurfaces(), but the Shell will still try to show the
  task surface in the WCT transaction callback

Bug: 255777383
Test: Launch game with existing visible task overlay
Test: Split app that shows a task overlay (ie. game dashboard button), then
      dismiss split
Change-Id: I950df0d88a56617369e6c15f66268455fd52d8b4
3 files changed