Move IBase transaction codes back to libhwbinder.

This is in order to allow IBase methods to be implemented a single time,
in a single language (C++) in libhwbinder efficiently, without being
regenerated by every HIDL lib, and in some cases, in a way that allow us
to fix IBase implementations even when these fixes are needed in a
prebuilt interface.

One of the major effects of this CL is more coupling of HIDL and
libhwbinder. These values were originally created in libhwbinder and
later moved to HIDL. At that time, moving these to HIDL was a bet to
make remotability of HIDL interfaces easier. That is, we might not use
libhwbinder at all and instead build stubs against an entirely different
transport mechanism (e.g. sockets). Although prototypes of this were,
it turns out that auto-generated stubs are expensive, and if this is
going to be practical, the only way to implement this would be to re-use
the existing parceling code and simply change libhwbinder to support
multiple transports. While that work is still stalled indefintely, I
mention it since although this goes back on original design
consideration, it does so with the knowledge that those design design
considerations are no longer critical to the future growth of HIDL,
which anyway is on the slow path of ultimate deprecation in favor of
AIDL.

Bug: 156096455
Test: build, boot, system/tools/hidl/test/run_all_device_tests.sh
Change-Id: I46d7db15b810c10181636ab528ded15f441a9400
2 files changed