This revision introduces support for buffer allocation for any named linalg op.
To avoid template instantiating many ops, a new ConversionPattern is created to capture the LinalgOp interface.
A few interfaces are also updated to be consistent with MLIR style:
OwningRewritePatternList * -> OwningRewritePatternList &
BufferAssignmentTypeConverter * -> BufferAssignmentTypeConverter &
Do these have to inherit from BufferAssignmentConversionPattern? I think a regular one should be fine. (you can access the typeConverter with getTypeConverter() from a regular conversion pattern)