Add adapters for HIDL interfaces.

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

This adds new autogenerated test libraries to HIDL which
can be used to run tests.

Test: can switch out implementations
~/android/master$ lshal | grep hidl.allocator
Y android.hidl.allocator@1.0::IAllocator/ashmem                               0/1        652    471
~/android/master$ lshal | grep hidl.allocator
Y android.hidl.allocator@1.0::IAllocator/ashmem                               0/1        7635   471
~/android/master$ lshal | grep hidl.allocator
Y android.hidl.allocator@1.0::IAllocator/ashmem                               0/1        652    471
Test: build all adapters in hardware/interfaces
Test: adapt @1.1::IPower to @1.0::IPower
Test: NFC works even after having an adaption layer over it (@1.0 -> @1.0 :/)

Bug: 37518178
Change-Id: Ia009d59352963321f16e085f034f70c462ccceeb
diff --git a/Interface.cpp b/Interface.cpp
index c7c7fe5..dac6669 100644
--- a/Interface.cpp
+++ b/Interface.cpp
@@ -679,6 +679,10 @@
     return fqName().getInterfaceBaseName();
 }
 
+std::string Interface::getAdapterName() const {
+    return fqName().getInterfaceAdapterName();
+}
+
 std::string Interface::getProxyName() const {
     return fqName().getInterfaceProxyName();
 }