This is mostly a copy of the existing tensor.generate bufferization. Once TensorInterfaceImpl.cpp is moved to the tensor dialect, the existing rewrite pattern can be deleted.
Summary of offline discussion: this is propagating a bad lowering that jumps abtraction gaps too quickly and also decides to introduce parallel semantics.
In the longer run there should be a memref.generate of something similar so that bufferization is simple and orthogonal from lowering to loops.
Note that linalg.generic with index semantics would be a better abstraction here.
For now we can just hook into existing code and add TODOs + warnings that this will need to be deprecated.