Introduce NNAPI Canonical Interface types

This CL introduces the canonical interface types: IDevice,
IPreparedModel, and IBuffer.

This CL also introduces three new types:
* SyncFence: wraps a NativeHandle to represent a sync_fence
* GeneralResult: a Result object where the error is extended with an
  ErrorStatus
* ExecutionResult: a Result object where the error is extended with an
  ErrorStatus and a vector of OutputShapes

Bug: 160668438
Test: mma
Test: NeuralNetworksTest_static
Change-Id: I99a6ccd88d0fa2f14296eb0019555b2aa46ab488
Merged-In: I99a6ccd88d0fa2f14296eb0019555b2aa46ab488
(cherry picked from commit 3fa5419e7a90fe98112c479e84952a4214496187)
13 files changed
tree: 0b533b9ac4b356a60d063767ee70b50a98f08af9
  1. nn/
  2. .clang-format
  3. CleanSpec.mk
  4. CPPLINT.cfg
  5. OWNERS
  6. PREUPLOAD.cfg