clover/llvm: add printf support

"The implementation is based on what LLVM AMD target expect.
The compiler provided an id link to argument desc and format used.
The runtime need to store them to be able to parse the buffer filled by
the device during the kernel execution, ie, an id value to find the
format and followed by the arguments values"

v2: airlied
Split out the llvm backend code, parse the llvm fmt strings
in the backend into the generic string format, set the llvm buffer
format required flag.

v3: change formatter call site
36 jobs for !7357 with clover-nir-llvm-printf in 8 seconds (queued for 2 seconds)
latest merge request