Replace boost string predicate functions with stdlib ones

Now that we're on C++20 we no longer need boost for starts_with() and
ends_with() tests.

Also remove the predicate.hpp #include from files that weren't actually
using anything from it.

Signed-off-by: Zev Weiss <zev@bewilderbeest.net>
Change-Id: Id68a019d5108a4646eb9b5fd18af33d60617e048
diff --git a/src/FanMain.cpp b/src/FanMain.cpp
index b52abd9..6732575 100644
--- a/src/FanMain.cpp
+++ b/src/FanMain.cpp
@@ -18,7 +18,6 @@
 #include <TachSensor.hpp>
 #include <Utils.hpp>
 #include <VariantVisitors.hpp>
-#include <boost/algorithm/string/predicate.hpp>
 #include <boost/algorithm/string/replace.hpp>
 #include <boost/container/flat_map.hpp>
 #include <boost/container/flat_set.hpp>
@@ -68,12 +67,12 @@
 {
     fs::path linkPath = parentPath / "device";
     std::string canonical = fs::read_symlink(linkPath);
-    if (boost::ends_with(canonical, "pwm-tacho-controller") ||
-        boost::ends_with(canonical, "pwm_tach:tach"))
+    if (canonical.ends_with("pwm-tacho-controller") ||
+        canonical.ends_with("pwm_tach:tach"))
     {
         return FanTypes::aspeed;
     }
-    if (boost::ends_with(canonical, "pwm-fan-controller"))
+    if (canonical.ends_with("pwm-fan-controller"))
     {
         return FanTypes::nuvoton;
     }
@@ -344,7 +343,7 @@
                 for (auto it = sensorsChanged->begin();
                      it != sensorsChanged->end(); it++)
                 {
-                    if (boost::ends_with(*it, findSensor->second->name))
+                    if (it->ends_with(findSensor->second->name))
                     {
                         sensorsChanged->erase(it);
                         findSensor->second = nullptr;