It breaks the logic of maskedVectorize (on tensor.pad ops) into
precondition checks and vectorization implementation; unifies the
interface.
The revision also rename`s vectorizeLinalgOpPrecondition` to
vectorizeOpPrecondition because we can vectorize ops other
than LinalgOps.
I think we need the notifyMatchFailure for the transform dialect. We should be able to use FailureOr<vector::TransferWriteOp> and return a TransferWriteOp from the vectorize side, I think. (Assuming that that was the reason to remove FailureOr<vector::TransferWriteOp>