HalDeviceManager: Allow synchronous callbacks

Changes in the CL:
a) Passing 'null' for handler in any of the callbacks will now result in
the callback being invoked directly in the context of the client
triggering the change.
b) Added annotations to the various arguments to specify which of them
can be null or non-null.
c) Revert the old mechanism of queing the destroy callbacks in front of
the handler.

Bug: 69797565
Test: Unit tests

Change-Id: I639c514d334117b9738bc31e3fe0ccffbb435123
2 files changed