libhidladapter: Support for HIDL adapters

A HIDL adapter takes an x.(y+1) interface and registers
it as an x.y interface for testing.

This library allows someone or something to run an adapter.

Note: this requires b/62303973 to properly mock a lower interface version.
Note: this requires adapters to run as root to get around sepolicy.

Bug: 37518178
Test: can switch out implementations
~/android/master$ lshal | grep hidl.allocator
Y [email protected]::IAllocator/ashmem                               0/1        652    471
~/android/master$ lshal | grep hidl.allocator
Y [email protected]::IAllocator/ashmem                               0/1        7635   471
~/android/master$ lshal | grep hidl.allocator
Y [email protected]::IAllocator/ashmem                               0/1        652    471

Change-Id: Ic72feb3a2fd4649e67b396c33b9a292e9c0a944a
11 files changed