iris: Enable PIPE_CAP_SHAREABLE_SHADERS
This switches iris from storing shader variants in a per-context hash table to storing them globally in the pipe_shader_state
itself, meaning that we can use them across contexts. This allows apps to compile in one context and draw with them in another, instead of having to recompile. It also simplifies tear down in st/mesa. Furthermore, it eliminates hash table lookup overhead when looking up shader variants.
Cc @idr