Return existing interfaces for repeated getExtension calls

Also, reset static state in destructors of interfaces.

Until now, new interfaces were being created for each repeated
getExtension() call to the Gnss interface. This was causing
asserts to fail which were checking for multiple
simultaneous instances of these interfaces.

Death notifications should still required to be created for all
interfaces including callback interfaces.

Bug: 35391416
Test: Verified that Maps still work after forcing a system_server
crash.

Change-Id: I8ce0888016637a3d9b62db5619a3c8c569262c0d
9 files changed