[NFC][mlir] Update DataFlowFramework.h to be compatible with clang c++23 (#152040)
This change makes `DataFlowFramework.h` compatible with `clang++` and
`--std=c++23`.
Previously clang was checking the templated `DataFlowSolver::eraseState`
body before being instantiated. This resulted in issues with incomplete
types, and happened at least with `clang++-19`.
This is fixed by moving the definition of `DataFlowSolver::eraseState`
after the `AnalysisState`'s full class declaration.
For full context:
-
https://discourse.llvm.org/t/what-is-the-status-of-c-23-support-in-mlir/87674/12