[RFC] DSL-style / dialect-specific builders

While we are on the topic of builders, should we also consider bringing some of the benefits of this API (like autocompletion) to OpBuilder style API as well. I was thinking something like:

OpBuilder builder(...);
SCF::IfOp::create(builder, loc, ....);

instead if today’s:

OpBuilder builder(...);
builder.create<SCF::IfOp>(loc, ...);

It does not save on “API crust” mentioned above, but will help autocomplete and enable using of {} for ArrayRef/Range parameters without an explicit cast. It seems this could be orthogonal to the DSL style dialect builders above. For OpBuilder, the idea would be to then migrate to this new style and deprecate the builder.create<> function (make it private).