Adopt weak pointers for death detection in EVS

Keep only weak pointers on the server side to objects that are owned by
the client.  Use the weak pointers to detect if/when the client goes away
unexpectedly.  Use destructors to do server side cleanup when the last
client reference dies.

Also removes explicit handle cloning as that is now handled inside
hidl_handle (as of 1/25/2017)

Adds calls to register buffer to comply with gralloc requirements.

Test:  locally compile and run evs_test.

Change-Id: I18fc0df3fa643536ab5dbc89d52de9af6a286972
10 files changed