This revision adds a transform.apply_conversion_patterns.func.func_to_llvm transformation.
It is unclear at this point whether this should be spelled out as a standalone transformation
or whether it should resemble transform.apply_conversion_patterns.dialect_to_llvm "fun".
This is dependent on how we want to handle the type converter creation.
In particular the current implementation exhibits the fact that
transform.apply_conversion_patterns.memref.memref_to_llvm_type_converter was not rich enough
and did not match the LowerToLLVMOptions.
Keeping those options in sync across all the passes that lower to LLVM is very error prone.
Instead, we should have a single to_llvm_type_converter.