Finished migration of validation checks out of cmd_pipeline.c

Added check to DrawState layer for submission of Primary cmd buffer in vkCmdExecuteCommands() call. Added a test to verify the check.

Replaced some other checks in cmd_pipeline.c with asserts and the checks themselves are already handled in ParamChecker.
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index bc35bd2..eeeee32 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -1819,6 +1819,28 @@
     }
 }
 
+TEST_F(VkLayerTest, ExecuteCommandsPrimaryCB)
+{
+    // Attempt vkCmdExecuteCommands w/ a primary cmd buffer (should only be secondary)
+    VkFlags         msgFlags;
+    std::string     msgString;
+
+    ASSERT_NO_FATAL_FAILURE(InitState());
+    ASSERT_NO_FATAL_FAILURE(InitRenderTarget());
+    m_errorMonitor->ClearState();
+
+    BeginCommandBuffer();
+    //ASSERT_VK_SUCCESS(err);
+    VkCmdBuffer primCB = m_cmdBuffer->GetBufferHandle();
+    vkCmdExecuteCommands(m_cmdBuffer->GetBufferHandle(), 1, &primCB);
+
+    msgFlags = m_errorMonitor->GetState(&msgString);
+    ASSERT_TRUE(0 != (msgFlags & VK_DBG_REPORT_ERROR_BIT)) << "Did not receive error after vkCmdBindVertexBuffers() w/o active RenderPass.";
+    if (!strstr(msgString.c_str(),"vkCmdExecuteCommands() called w/ Primary Cmd Buffer ")) {
+        FAIL() << "Error received was not 'vkCmdExecuteCommands() called w/ Primary Cmd Buffer ' but instead '" << msgString.c_str() << "'";
+    }
+}
+
 TEST_F(VkLayerTest, DSTypeMismatch)
 {
     // Create DS w/ layout of one type and attempt Update w/ mis-matched type