Ensure the current controller when handling a remote call in the Shell

- Move executeRemoteCallWithTaskPermission() to the ExternalInterface
  class which is the only case in which it's needed
- Fix a few cases where we aren't unregistering the listener when
  invalidating an external interface
- Remove some dead code

Bug: 343544451
Test: atest WMShellUnitTests
Change-Id: I88c1d4e63311602a01060bd036e6a899e9ab9e04
16 files changed