Fix nav bar leak in SystemUI

- Ensure that the composition sampling listener is destroyed when the nav
  bar is destroyed instead of waiting for the finalize callback. That
  callback would never be made since the sampling listener has a reference
  to the outer class and has a strong ref from SF, and the other class
  has itself a reference to the listener.
- Always unregister the nav bar fragment from the mode change callbacks

Bug: 141473489
Test: Switch navigation modes a couple times, take hprof dump and verify
      there aren't leaking classes

Change-Id: Ic389a559a3d430af495365102854d531f7d1966d
3 files changed