turnip: Use the ir3 shader API
Before this we were rolling our own implementation of the ir3 shader API for compiling different variants, specialized for turnip where there were only at most two variants, and the number of variants was known ahead of time. This will no longer be true once we support different constlen's, and especially won't be true once we start caching shaders. Also the way we embedded ir3_shader
meant that we couldn't switch ir3_shader
to ralloc.
The first commit is a separate refactor I needed, and the last commit is a related cleanup I noticed while working on this.