We have currently one builder for a few common StandardOps operation in ArithBuilder. In order to facilitate the creation of one dialect builder from another one, this patch create a superclass, DialectBuilder that stores the builder and location. Specialized builders inherit from the superclass their data and can focus to primarily providing methods to generate code.
Say in the future we may have a LinAlg or SCF builder, we would then be able to initialize these other specialized builders from a current one, e.g.
SCFBuilder createSCF(createArith);
In addition, I added a subtract method to the current ArithBuilder.
clang-format: please reformat the code