clover: printf support
This supersedes !6040 and !6308 (closed)
It takes Serge's code makes a the format string handling generic, and conditionalises the global buffer format.
Pulls in Jesse's code and reworks the lowering to generate more info and put an idx rather than a ptr in the global buffer.
It then hooks up clover to the NIR paths.
The last patch is some "fixes" for Serge's code I'm not sure are correct I only pass the non-vector test_printf tests from CTS so far with llvmpipe
Edited by Dave Airlie