Don't readd pending notifs to NEM's allNotifs list

Instead, we reuse the pending notification entry so we don't
unnecessarily create and retain mutliple notification entries for the same
notification.

Additionally:
 - dump all notifications kept by NEM in a dumpsys/bugreport
 - move mLeakDetector.trackGarbage(entry) to after NEM.listeners are told to
 remove their references to the entry
 - trackGarbage(entry) on pending notifications that are removed

Test: receive phone call, see HUN still appears
Test: post high priority notification (HUN) and then send immediate
update, still see HUN
Test: atest HeadUpNotificationTests
Test: atest NotificationEntryManagerTest
Test: adb shell dumpsys activity service com.android.systemui/.SystemUIService dependency DumpController NotificationEntryManager
Test: check memory usage of com.android.systemui before and after
running NexusLauncherTests (observe view count doesn't incrementally get
worse)
Fixes: 156301621

Change-Id: I60ec7847f0b8cc3f3a3ab3fbc0004991e816dc16
3 files changed