Split `GenerateData` into `BeforeThreadedGenerateData`, `DynamicThreadedGenerateData`, and `AfterThreadedGenerateData`. `itk::BlockMatching::MetricImageFilter` and descendants will need to implement `InternalClone` for use in `DynamicThreadedGenerateData`.