libbinder_ndk: recombine allocators/getters

Since they are tightly coupled, these have been combined together.

Primitive arrays/strings look like this:
    AParcel_write...(parcel, T*, length);
    AParcel_read...(parcel, void*, allocator);

With the exception of boolean which looks like this:
    AParcel_write...(parcel, void*, length, getter)
    AParcel_read...(parcel, void*, allocator, setter)

The difference in boolean is because boolean values are not necessarily
stored contiguously in memory in most implementations (rather they are
stored in more complicated bitsets), and so this representation easily
allows for this efficient storage when these items are not being
transported over binder.

Bug: 111445392
Test: atest android.binder.cts
Change-Id: Ic1645a315f31c8ef35c0a90aa42b96ec55515912
4 files changed