libbinder_ndk: reading strings is optional.

This is converting the most complicated type in the NDK layer to be
optional. This is for feature parity with Java. In AIDL itself, like in
the C++ backend, @nullable will be used to determine whether the C++
layer above the NDK actually accepts the nullable types.

Bug: 112664205
Test: atest android.binder.cts
Change-Id: Ia020706318956a008de5e715730725e9a5a1308d
3 files changed