Use the correct user context in CustomTile

CustomTile was using the SystemUI context (in user 0) to retrieve
service information and resources. This failed in 3rd party tiles that
could be installed just for a particular user but were not installed in
user 0.

Additionally, having observed cases where the sysui_qs_tiles setting has
"work,work,work,....", this CL cleans that up and prevents it happening
in the future by not allowing repeats in the specs list.

Fixes some leaks in CustomTile:
* destroy CustomTile that changes user
* remove Change listerner from TileLifecycleManager

Test: atest QSTileHostTest CustomTileTest
Test: manual
Test: hprof
Fixes: 141904434
Change-Id: I92b26294dec63477943d28e2000fe3e0c16f8aa3
Merged-In: I92b26294dec63477943d28e2000fe3e0c16f8aa3
(cherry picked from commit a6862914da91644d89ffa6447818eb192b78a7ab)
6 files changed