WifiNative: Handle all native death in wifi thread

Changes in the CL:
a) To prevent deadlocks while processing death notification as we're in the
midst of performing some state changes, post the death notification to
the wifi thread. All the modules are already handling remote exceptions
which will probably be raised if the native daemon is dead while
invoking the binder/hwbinder methods.
b) Also, keep a counter to track the death recipient cookie in
SupplicantStaIfaceHal/HostapdHal. This is used to ignore any stale
death notification that can arise due to changes in (a) if there is a
quick wifi toggle. (supplicant killed & restarted)

Bug: 122136974
Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh
Test: Performed some basic tests (toggle wifi,softap, etc)
Test: Will send for regression tests.

Note: We've not been able to repro the reported deadlock. So, will let
partners verify the fix in parallel if they have a repro.

Change-Id: I898e9051ec7c9fd5a4019c9cba671f3094ef20bf
9 files changed