layers: GH465 Add validation for now bound VkPipeline

At the time of a Draw or Dispatch, a pipeline must be bound to the
command buffer. This adds a check to verify that.
Added tests for both draw and compute cases to verify the check.
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index 99ce40a..b1a1b5b 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -2671,6 +2671,23 @@
     vkCmdBindPipeline(m_commandBuffer->GetBufferHandle(),
                       VK_PIPELINE_BIND_POINT_GRAPHICS, bad_pipeline);
     m_errorMonitor->VerifyFound();
+
+    // Now issue a draw call with no pipeline bound
+    m_errorMonitor->SetDesiredFailureMsg(
+        VK_DEBUG_REPORT_ERROR_BIT_EXT,
+        "At Draw/Dispatch time no valid VkPipeline is bound!");
+    ASSERT_NO_FATAL_FAILURE(InitState());
+    BeginCommandBuffer();
+    Draw(1, 0, 0, 0);
+    m_errorMonitor->VerifyFound();
+    // Finally same check once more but with Dispatch/Compute
+    m_errorMonitor->SetDesiredFailureMsg(
+        VK_DEBUG_REPORT_ERROR_BIT_EXT,
+        "At Draw/Dispatch time no valid VkPipeline is bound!");
+    ASSERT_NO_FATAL_FAILURE(InitState());
+    BeginCommandBuffer();
+    vkCmdDispatch(m_commandBuffer->GetBufferHandle(), 0, 0, 0);
+    m_errorMonitor->VerifyFound();
 }
 
 TEST_F(VkLayerTest, DescriptorSetNotUpdated) {