Break circular includes between fpdfsdk/ and fpdfsdk/pwl.

The CPWL_Wnd::PrivateData interface replaces all use of
CPDFSDK_Widget at the pwl/ layer. In turn, IPWL_SystemHandler
can no longer use a widget, so it must use PrivateData instead.
This then hits the "no forward declaration of nested classes"
gotcha, so PrivateData moves to IPWL_SystemHandler and is renamed
PerWindowData.

Change-Id: I98153e2def05cf2d582b96b2bec3dc905c97910a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/58814
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fpdfsdk/pwl/cpwl_special_button.h b/fpdfsdk/pwl/cpwl_special_button.h
index 68bb965..3d9fa25 100644
--- a/fpdfsdk/pwl/cpwl_special_button.h
+++ b/fpdfsdk/pwl/cpwl_special_button.h
@@ -13,8 +13,9 @@
 
 class CPWL_PushButton final : public CPWL_Button {
  public:
-  CPWL_PushButton(const CreateParams& cp,
-                  std::unique_ptr<PrivateData> pAttachedData);
+  CPWL_PushButton(
+      const CreateParams& cp,
+      std::unique_ptr<IPWL_SystemHandler::PerWindowData> pAttachedData);
   ~CPWL_PushButton() override;
 
   // CPWL_Button:
@@ -23,8 +24,9 @@
 
 class CPWL_CheckBox final : public CPWL_Button {
  public:
-  CPWL_CheckBox(const CreateParams& cp,
-                std::unique_ptr<PrivateData> pAttachedData);
+  CPWL_CheckBox(
+      const CreateParams& cp,
+      std::unique_ptr<IPWL_SystemHandler::PerWindowData> pAttachedData);
   ~CPWL_CheckBox() override;
 
   // CPWL_Button:
@@ -40,8 +42,9 @@
 
 class CPWL_RadioButton final : public CPWL_Button {
  public:
-  CPWL_RadioButton(const CreateParams& cp,
-                   std::unique_ptr<PrivateData> pAttachedData);
+  CPWL_RadioButton(
+      const CreateParams& cp,
+      std::unique_ptr<IPWL_SystemHandler::PerWindowData> pAttachedData);
   ~CPWL_RadioButton() override;
 
   // CPWL_Button