This revision adds lowering of vector.contract to llvm.intr.matrix_multiply.
Separable revisions have been sent out for review independently.
This revision will be rebased once parents have landed and will become much simpler.
Please do not review this atm, this is for visibility purposes.
clang-format: please reformat the code