nn: update from upstream

This CL brings our NNAPI implementation up to date with upstream as of
6591f4daeb3a63677b1485b8c9fb65134cd9b0b1. This is immediately prior to
the start of the changes being made to implement
go/nnapi-canonical-types (d3177b9a2ce3ba8543eda5bd57c98141632e366a).

The intention is to keep our fork at this point until the upstream work
has stabilized.

No manual changes have been made here.

Note: The reason there are so many commits in the merge list, yet so few
changes are due to a combination of cherry-picks (eg.
crrev.com/c/2346376) and a squashed merge commit (crrev.com/c/2346294).
We now know that we can do a regular merge commit without generating
hundreds of CL's, and this is the first of those.

BUG=b:157855577
TEST=cq passes

Change-Id: Icd8aecbe859ae8ded1f8e0ac6e41835e3625bd0a