SpirvShader: 2-way imported extensions lookup

The `extensions` map of ID -> extension has been renamed to `extensionsByID`.
The `extensionsImported` is a new set containing the list of extension names that have been imported. This set can be efficiently queried to determine whether a particular extension is in use.

Bug: b/145351270
Change-Id: I74bbfb2e5b95862c5381037f259262a9d45b6624
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/40092
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
diff --git a/src/Pipeline/SpirvShader.cpp b/src/Pipeline/SpirvShader.cpp
index 0df1cfd..2257017 100644
--- a/src/Pipeline/SpirvShader.cpp
+++ b/src/Pipeline/SpirvShader.cpp
@@ -442,7 +442,8 @@
 					UNSUPPORTED("SPIR-V Extension: %s", name);
 					break;
 				}
-				extensions.emplace(id, ext);
+				extensionsByID.emplace(id, ext);
+				extensionsImported.emplace(ext.name);
 				break;
 			}
 			case spv::OpName: