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/http/routing/baserule.hpp b/http/routing/baserule.hpp
index 770405b..8ef1afc 100644
--- a/http/routing/baserule.hpp
+++ b/http/routing/baserule.hpp
@@ -9,9 +9,14 @@
 
 #include <boost/asio/ip/tcp.hpp>
 #include <boost/asio/ssl/stream.hpp>
+#include <boost/beast/http/status.hpp>
 
+#include <cstddef>
+#include <limits>
 #include <memory>
 #include <string>
+#include <utility>
+#include <vector>
 
 namespace crow
 {
diff --git a/http/routing/dynamicrule.hpp b/http/routing/dynamicrule.hpp
index 35753b7..38db744 100644
--- a/http/routing/dynamicrule.hpp
+++ b/http/routing/dynamicrule.hpp
@@ -1,16 +1,20 @@
 // SPDX-License-Identifier: Apache-2.0
 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
 #pragma once
-#include "baserule.hpp"
-#include "ruleparametertraits.hpp"
-#include "websocket.hpp"
 
-#include <boost/beast/http/verb.hpp>
+#include "async_resp.hpp"
+#include "baserule.hpp"
+#include "http_request.hpp"
+#include "ruleparametertraits.hpp"
+
+#include <boost/callable_traits/args.hpp>
 
 #include <functional>
-#include <limits>
+#include <memory>
+#include <stdexcept>
 #include <string>
-#include <type_traits>
+#include <tuple>
+#include <vector>
 
 namespace crow
 {
diff --git a/http/routing/ruleparametertraits.hpp b/http/routing/ruleparametertraits.hpp
index ed5311e..0d5417d 100644
--- a/http/routing/ruleparametertraits.hpp
+++ b/http/routing/ruleparametertraits.hpp
@@ -2,11 +2,15 @@
 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
 #pragma once
 
+#include "privileges.hpp"
 #include "sserule.hpp"
+#include "verb.hpp"
 #include "websocketrule.hpp"
 
 #include <boost/beast/http/verb.hpp>
 
+#include <array>
+#include <cstddef>
 #include <initializer_list>
 #include <optional>
 
diff --git a/http/routing/sserule.hpp b/http/routing/sserule.hpp
index 0c9295e..e32af57 100644
--- a/http/routing/sserule.hpp
+++ b/http/routing/sserule.hpp
@@ -2,16 +2,22 @@
 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
 #pragma once
 
+#include "async_resp.hpp"
 #include "baserule.hpp"
 #include "http_request.hpp"
 #include "http_response.hpp"
+#include "logging.hpp"
 #include "server_sent_event.hpp"
 
-#include <boost/beast/http/verb.hpp>
+#include <boost/asio/ip/tcp.hpp>
+#include <boost/asio/ssl/stream.hpp>
+#include <boost/beast/http/status.hpp>
 
 #include <functional>
 #include <memory>
 #include <string>
+#include <utility>
+#include <vector>
 
 namespace crow
 {
diff --git a/http/routing/taggedrule.hpp b/http/routing/taggedrule.hpp
index c6d60d4..b785d88 100644
--- a/http/routing/taggedrule.hpp
+++ b/http/routing/taggedrule.hpp
@@ -1,14 +1,16 @@
 // SPDX-License-Identifier: Apache-2.0
 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
 #pragma once
+#include "async_resp.hpp"
 #include "baserule.hpp"
-#include "dynamicrule.hpp"
+#include "http_request.hpp"
 #include "ruleparametertraits.hpp"
 
-#include <boost/beast/http/verb.hpp>
-
+#include <functional>
 #include <memory>
+#include <stdexcept>
 #include <string>
+#include <type_traits>
 #include <vector>
 
 namespace crow
diff --git a/http/routing/websocketrule.hpp b/http/routing/websocketrule.hpp
index 61743d5..0341022 100644
--- a/http/routing/websocketrule.hpp
+++ b/http/routing/websocketrule.hpp
@@ -2,13 +2,21 @@
 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
 #pragma once
 
+#include "async_resp.hpp"
 #include "baserule.hpp"
+#include "http_request.hpp"
+#include "logging.hpp"
 #include "websocket.hpp"
 
-#include <boost/beast/http/verb.hpp>
+#include <boost/asio/ip/tcp.hpp>
+#include <boost/asio/ssl/stream.hpp>
+#include <boost/beast/http/status.hpp>
 
+#include <functional>
 #include <memory>
 #include <string>
+#include <string_view>
+#include <utility>
 #include <vector>
 
 namespace crow