libbinder: ProcessState warn on forked

Reasonably common error, when people's programs are crashing, because
libbinder does not support forking (and supporting forking is really
complicated and error prone in multithreaded processes:

    pthread_atfork documentation states this

        The intent of pthread_atfork() was to provide a mechanism
        whereby the application (or a library) could ensure that
        mutexes and other process and thread state would be restored
        to a consistent state.  In practice, this task is generally
        too difficult to be practicable.

    specifically, in libbinder, we would have to:

        - get all of the libbinder-related locks
        - make sure the kernel driver can handle forking (or open a new
          binder fd by reinstantiating ProcessState)
        - (actual difficulty here) make sure we can capture and release
          application-specific locks - in a multithreaded process,
          anything could be going on

So, we don't want to take on the complexity of supporting it).

Instead now, we install a pthread_atfork handler which marks the
ProcessState as invalid in the child process. If code tries to access
ProcessState after forking, then it will throw an error (future: abort).
Note: forking and then using non-binder things, such as what installd
and vold does, is okay.

Bug: 202289725
Test: boot and check logs (none)
Change-Id: I18638a3190ed2ea23945413c2e5ab15d7094d0b0
2 files changed