Vulkan: Pull generic SPIR-V transform functionality into base class This is in preparation for adding another transformation for vertex attribute aliasing. This transformation is not merged with the existing one, because in practice vertex attribute aliasing is rare so this transformation would be rarely done. This makes sure the efficiency of the main transformer is not affected, and avoids complicating it further. Bug: angleproject:4249 Change-Id: I9c3f6cefbec99a355596579f4471d7ada810927e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482285 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>