BaseSignatureChecker has virtual functions which are overridden by its child classes. These virtual functions have a default implementation. However because of the default implementation, bugs can be introduced by failing to implement one of them (e.g. #21151). To avoid this, those functions are made into pure virtual functions so that child classes must implement those functions. There are a few places where a BaseSignatureChecker was being created; these instances have been replaced with the DUMMY_CHECKER.
GenericTransactionSignatureChecker has two constructors, one which takes a PrecomputedTransactionData and one which does not. It can be difficult to understand which one to use, and whether a particular GenericTransactionSignatureChecker has a PrecomputedTransactionData. This has lead to some bugs as well (e.g. #22784). Looking through the codebase, the only place where PrecomputedTransactionData does not need to be provided is in the unit tests. As such, this PR changes GenericTransactionSignatureChecker to have only one constructor which requires PrecomputedTransactionData to be provided. This has a side effect of requiring the same for MutableTransactionSignatureCreator, which also had two constructors, and the one that did not require PrecomputedTransactionData was only used in tests.