Reuse binary indices when rebuilding SPIR-V binaries
When prebuilt SPIR-V binaries are stored in a version control system,
we want to minimize churn (rewritten files) when updating binaries in
response to test or compiler changes.
This change makes vk::BinaryRegistyWriter significantly smarter when
updating binary registry. Old binary files (and thus indices) are
reused if possible. Any newly unused binaries are removed, and new
indices are allocated only for binaries that haven't been present
before.
Change-Id: Ieac61ff32821e4381480dd56ff27dbcdd44e50cb