1. Introduce a `groupTask` property to `TaskView` and let all the
`bind` functions take a type of `GroupTask` as the parameter
instead of a `Task`.
2. Then let `RecentsView.removeGroupTaskInternal` take the
`GroupTask` as the parameter instead of a `TaskView`.
3. Caches the `groupTask` before `removeGroupTaskInternal` then
we can avoid the corresponding `deskId` being set to invalid
on `removeViewInLayout` in the main thread, which might happen
before `removeGroupTaskInternal`.
Bug: 408032417
Test: m
Flag: EXEMPT refactor
Change-Id: I51c5b810eb63bc1267b90b915f90164f7ca3cba5