Encapsulate NotSelectableTargetInfo implementation

This replaces ChooserActivity's two inner-class implementations of the
NotSelectableTargetInfo API with new factory methods (provided
statically by NotSelectableTargetInfo) that return anonymous-class
implementations with all the same overrides.

This effectively removes the two implementations from ChooserActivity
(where they were "just more clutter") and ensures that clients can't
rely on old-style dynamic type checks to dispatch type-specific logic
involving these targets.

This is a small step towards generally "flattening" the TargetInfo
hierarchy as described at go/chooser-targetinfo-cleanup.

Test: atest IntentResolverUnitTests
Bug: 202167050
Change-Id: Ib7125299f7f63cffb0134986d7522f338998bb19
4 files changed