`any_invocable`: Clean up #includes

- remove [<initializer_list>](https://en.cppreference.com/w/cpp/header/initializer_list) from internal header. It declares `std::initializer_list`, `std::begin` and `std::end`, none of which are used there
- add `absl/base/attributes.h` to the internal header because it provides `ABSL_FALLTHROUGH_INTENDED`
- add [<functional>](https://en.cppreference.com/w/cpp/header/functional) to the public header, because it provides `std::reference_wrapper`

PiperOrigin-RevId: 632018125
Change-Id: Icf7a9c8a920c9c076ef416ea80995e3a81ce3e81
diff --git a/absl/functional/any_invocable.h b/absl/functional/any_invocable.h
index bc98073..3acb9fd 100644
--- a/absl/functional/any_invocable.h
+++ b/absl/functional/any_invocable.h
@@ -34,6 +34,7 @@
 #define ABSL_FUNCTIONAL_ANY_INVOCABLE_H_
 
 #include <cstddef>
+#include <functional>
 #include <initializer_list>
 #include <type_traits>
 #include <utility>
diff --git a/absl/functional/internal/any_invocable.h b/absl/functional/internal/any_invocable.h
index ce58fd8..c2d8cd4 100644
--- a/absl/functional/internal/any_invocable.h
+++ b/absl/functional/internal/any_invocable.h
@@ -58,12 +58,12 @@
 #include <cstring>
 #include <exception>
 #include <functional>
-#include <initializer_list>
 #include <memory>
 #include <new>
 #include <type_traits>
 #include <utility>
 
+#include "absl/base/attributes.h"
 #include "absl/base/config.h"
 #include "absl/base/internal/invoke.h"
 #include "absl/base/macros.h"