Enable an io-uring build

There exists a bug where calls that we previously thought were
non-blocking, actually do block when used with hwmon or filesystem fds.
This causes high latencies on the dbus interfaces when lots of sensors
are used in a single daemon, as is the case in PSUSensor.

This patchset moves the PSUSensor code over to using io-uring, through
boost asio, using the random_access_file class.  This helps with
performance in a number of ways, the largest of which being that sensor
reads are no longer blocking.

Tested:

Booted the sensor system on Tyan S7106;  dbus-monitor shows sensors
scanning normally.

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I654eafcfab5a24b65b89c204ab43d81c7ae064cf
diff --git a/src/meson.build b/src/meson.build
index 0fe5f56..4c3d61c 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -14,6 +14,7 @@
             thresholds_dep,
             utils_dep,
         ],
+        cpp_args: uring_args,
         implicit_include_directories: false,
         include_directories: '../include',
         install: true,
@@ -48,6 +49,7 @@
             thresholds_dep,
             utils_dep,
         ],
+        cpp_args: uring_args,
         implicit_include_directories: false,
         include_directories: '../include',
         install: true,
@@ -66,6 +68,7 @@
             thresholds_dep,
             utils_dep,
         ],
+        cpp_args: uring_args,
         implicit_include_directories: false,
         include_directories: '../include',
         install: true,
@@ -82,6 +85,7 @@
             thresholds_dep,
             utils_dep,
         ],
+        cpp_args: uring_args,
         implicit_include_directories: false,
         include_directories: '../include',
         install: true,
@@ -99,6 +103,7 @@
             i2c,
             utils_dep,
         ],
+        cpp_args: uring_args,
         implicit_include_directories: false,
         include_directories: '../include',
         install: true,
@@ -114,6 +119,7 @@
             thresholds_dep,
             utils_dep,
         ],
+        cpp_args: uring_args,
         implicit_include_directories: false,
         include_directories: '../include',
         install: true,
@@ -130,6 +136,7 @@
             thresholds_dep,
             utils_dep,
         ],
+        cpp_args: uring_args,
         implicit_include_directories: false,
         include_directories: '../include',
         install: true,
@@ -146,6 +153,7 @@
         'nvmesensor',
         sources: nvme_srcs,
         dependencies: nvme_deps,
+        cpp_args: uring_args,
         implicit_include_directories: false,
         include_directories: '../include',
         install: true,
@@ -164,6 +172,7 @@
             thresholds_dep,
             utils_dep,
         ],
+        cpp_args: uring_args,
         implicit_include_directories: false,
         include_directories: '../include',
         install: true,
@@ -180,6 +189,7 @@
             thresholds_dep,
             utils_dep,
         ],
+        cpp_args: uring_args,
         implicit_include_directories: false,
         include_directories: '../include',
         install: true,