Add custom attribute for complex dialect. Although this commit does not have significant impact on the conversion framework, it will lead us to construct complex numbers in a readable and tidy manner.
Related discussion: https://reviews.llvm.org/D127476
shouldn't it be
and then we probably need some verification similar to BuiltinAttributes.cpp:293 that checks that both the types of $lhs, $rhs and $type match?