Cleanup NNAPI QoS Deadline

This CL does the following changes:
* In the case where a timeout duration would cause an overflow of the
  OptionalTimePoint, this CL instead clamps it to the max time point.
  Accordingly, the Overflow test result is changed from BAD_DATA to
  NO_ERROR.
* Previously hal::OptionalTimePoint was used throughout the runtime
  code. However, OptionalTimePoint cannot be directly compared against
  the current time. Instead, this CL changes the runtime deadline type
  to std::optional<std::chrono::steady_clock::time_point>, called
  std::optional<Deadline>.
* Implements a simple deadline abort within the sample driver the and
  runtime's CPU (i.e., non-driver) path.

Bug: 147925145
Test: mma
Test: CtsNNAPITestCases
Test: NeuralNetworksTest_static
Change-Id: I54ca961416313334eb3fca3f439db0974044bd6d
Merged-In: I54ca961416313334eb3fca3f439db0974044bd6d
(cherry picked from commit cf2cadfdc4c1269c0270ddee7723e3f97f485c40)
18 files changed