layers: Require pipeline layout to contain all referenced descriptors

If the SPIRV image uses a descriptor (for constant buffer, image, etc)
we must declare it in the pipeline layout.

We won't complain about unused junk in the pipeline layout, but not
declaring something that *is* used is an error.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Courtney Goeltzenleuchter <courtney@lunarg.com>
diff --git a/layers/shader_checker.h b/layers/shader_checker.h
index 4e7eddf..2c3868b 100644
--- a/layers/shader_checker.h
+++ b/layers/shader_checker.h
@@ -37,4 +37,5 @@
     SHADER_CHECKER_INCONSISTENT_SPIRV,      /* General inconsistency within a SPIR-V module */
     SHADER_CHECKER_UNKNOWN_STAGE,           /* Stage is not supported by analysis */
     SHADER_CHECKER_INCONSISTENT_VI,         /* VI state contains conflicting binding or attrib descriptions */
+    SHADER_CHECKER_MISSING_DESCRIPTOR,      /* Shader attempts to use a descriptor binding not declared in the layout */
 } SHADER_CHECKER_ERROR;