Moved operators parsing from methods to functions since functions can also be operators.
Added some overloads to emit debug diagnostics.
Extract diagnostic handling to a method.
Added accurate return and argument type ABI information by querying Clang's code gen layer for the correct information. This does add a lot of extra dependencies on LLVM and Clang libraries.