pw_containers: Make Pair in FlatMap support CTAD

Adding an explicit deduction guide for Pair does a few things:
* Some cases are not covered by implicit deduction guides, for the same
  reason as for std::pair. For more information, see
  https://en.cppreference.com/w/cpp/utility/pair/deduction_guides
* CTAD can be sketchy in some cases, and so some projects might opt to
  enable something like -Wctad-maybe-unsupported. Adding an explicit
  deduction guide is a signal to the compiler that the type is "opting
  in" to CTAD.

Unfortunately, the aggregate initialization with no types does not work
in all circumstances (for example, it can be tricky to get all the
deductions to line up when using std::apply and a lambda), and the CTAD
option exists as a less verbose option than one where the template
parameters _also_ need to be stated explicitly. Note that the Google
style guide doesn't love CTAD in general:
https://google.github.io/styleguide/cppguide.html#CTAD

(Note: CTAD = class template argument deduction)

Change-Id: Ib4555e8d3655f2a91e8c487641df1b973453723e
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/120731
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Anqi Dong <anqid@google.com>
diff --git a/pw_containers/public/pw_containers/flat_map.h b/pw_containers/public/pw_containers/flat_map.h
index 3027a0e..7ce97ca 100644
--- a/pw_containers/public/pw_containers/flat_map.h
+++ b/pw_containers/public/pw_containers/flat_map.h
@@ -30,6 +30,9 @@
   Second second;
 };
 
+template <typename T1, typename T2>
+Pair(T1, T2) -> Pair<T1, T2>;
+
 // A simple, fixed-size associative array with lookup by key or value.
 //
 // FlatMaps are initialized with a std::array of Pair<K, V> objects: