Add support for inference cancellation

Send cancel inference messages to the ethosu subsystem to abort
inference execution there.  Also mark inference as aborted in the
linux driver stack itself, so pending inference messages are not
resent when resetting the firmware.

Change-Id: I244c2b119fd7995d14e3859815abf2a00c7f0583
diff --git a/driver_library/include/ethosu.hpp b/driver_library/include/ethosu.hpp
index 61e2bc5..da8dbbd 100644
--- a/driver_library/include/ethosu.hpp
+++ b/driver_library/include/ethosu.hpp
@@ -185,6 +185,8 @@
     ERROR,
     RUNNING,
     REJECTED,
+    ABORTED,
+    ABORTING,
 };
 
 std::ostream &operator<<(std::ostream &out, const InferenceStatus &v);
@@ -226,9 +228,10 @@
 
     virtual ~Inference() noexcept(false);
 
-    int wait(int64_t timeoutNanos = -1) const;
+    bool wait(int64_t timeoutNanos = -1) const;
     const std::vector<uint32_t> getPmuCounters() const;
     uint64_t getCycleCounter() const;
+    bool cancel() const;
     InferenceStatus status() const;
     int getFd() const;
     const std::shared_ptr<Network> getNetwork() const;