DialectAnalysisState is now OneShotAnalysisState::Extension.
This state extension mechanism is needed only for One-Shot Analysis, so it is moved from BufferizableOpInterface.h to OneShotAnalysis.h.
Extensions are now identified via TypeIDs instead of StringRefs. The API of state extensions is cleaned up and follows the same pattern as other extension mechanisms in MLIR (e.g., transform::TransformState::Extension).
Also delete some dead code.
It is dangerous to have a public constructor that takes TypeID because the caller can pass an arbitrary ID. Instead, consider adding an additional protected constructor and delegate to it. There's an even safer version of having an AnalysisBase CRTP class that handles all TypeID-related logic, but it may be too verbose for this use case.