Fix includes

Clang-tidy misc-include-cleaner appears to now be enforcing
significantly more headers than previously.  That is overall a good
thing, but forces us to fix some issues.  This commit is largely just
taking the clang-recommended fixes and checking them in.  Subsequent
patches will fix the more unique issues.

Note, that a number of new ignores are added into the .clang-tidy file.
These can be cleaned up over time as they're understood.  The majority
are places where boost includes a impl/x.hpp and x.hpp, but expects you
to use the later.  include-cleaner opts for the impl, but it isn't clear
why.

Change-Id: Id3fdd7ee6df6c33b2fd35626898523048dd51bfb
Signed-off-by: Ed Tanous <etanous@nvidia.com>
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
diff --git a/include/pam_authenticate.hpp b/include/pam_authenticate.hpp
index 7afe952..358c9d8 100644
--- a/include/pam_authenticate.hpp
+++ b/include/pam_authenticate.hpp
@@ -2,12 +2,24 @@
 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
 #pragma once
 
+#include "logging.hpp"
+
+#include <security/_pam_types.h>
 #include <security/pam_appl.h>
 
+// misc-include-cleaner complains if this isn't included,
+// modernize-deprecated-headers complains if it is included.
+// NOLINTNEXTLINE(modernize-deprecated-headers)
+#include <string.h>
+
+#include <algorithm>
 #include <cstring>
 #include <memory>
+#include <optional>
 #include <span>
+#include <string>
 #include <string_view>
+#include <vector>
 
 struct PasswordData
 {