layers: DrawState fix to prevent false positives when matching PipelineLayouts

Updated existing check where PipelineLayout found with vkBindDescriptorSets was always checked against PipelineLayout from PSO. Since there are cases when a Draw requires no Descriptors the check was modified for now to only occur when vkCmdBindDescriptorSets has been called. This is still not perfect but will prevent false positives.
Really need to identify when it's valid to not call vkCmdBindDescriptorSets and, if so, don't perform the PipelineLayout match check.
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 02f2e10..d97578a 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -436,7 +436,10 @@
     VkBool32 result = validate_draw_state_flags(pCB, indexedDraw);
     PIPELINE_NODE* pPipe = getPipeline(pCB->lastBoundPipeline);
     // Now complete other state checks
-    if (pPipe && (pCB->lastBoundPipelineLayout != pPipe->graphicsPipelineCI.layout)) {
+    // TODO : Currently only performing next check if *something* was bound (non-zero last bound)
+    //  There is probably a better way to gate when this check happens, and to know if something *should* have been bound
+    //  We should have that check separately and then gate this check based on that check
+    if (pPipe && (pCB->lastBoundPipelineLayout) && (pCB->lastBoundPipelineLayout != pPipe->graphicsPipelineCI.layout)) {
         result = VK_FALSE;
         log_msg(mdd(pCB->cmdBuffer), VK_DBG_REPORT_ERROR_BIT, VK_OBJECT_TYPE_PIPELINE_LAYOUT, pCB->lastBoundPipelineLayout.handle, 0, DRAWSTATE_PIPELINE_LAYOUT_MISMATCH, "DS",
                 "Pipeline layout from last vkCmdBindDescriptorSets() (%#" PRIxLEAST64 ") does not match PSO Pipeline layout (%#" PRIxLEAST64 ") ", pCB->lastBoundPipelineLayout.handle, pPipe->graphicsPipelineCI.layout.handle);