[HDM] Interface availability semantics change to call on change

Modify the interface availability listener semantics:

WAS: call any time interface is available

NOW:
- Called on interface available or not available
- Only called if that specific listener was not called before
  or called with a different value

Bug: 69863101
Test: unit tests, integration time, manual test
Change-Id: I152ce8d813194f4fb178a1e9b73cf9e1b6815cb7
4 files changed