nir: split nir_opt_shrink_stores from nir_opt_shrink_vectors
This patch moves the shrinking of store sources into a separate pass. The reasoning behind this is that this pass usually only needs to be called once while nir_shrink_vectors might better be called several times. This allows to move the pass(es) out of the optimization loops.