layers: MR149, Cleanup CMD_NODE use in draw_state

Move pCmds vector<CMD_NODE*> to be cmds vector<CMD_NODE> instead. This simplifies
cleanup of the data structure as we don't have to manage the ptr new/delete lifecycle.
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index fd975ee..8954a89 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -2497,12 +2497,6 @@
         return;
     }
     for (auto ii=my_data->commandBufferMap.begin(); ii!=my_data->commandBufferMap.end(); ++ii) {
-        vector<CMD_NODE*> cmd_node_list = (*ii).second->pCmds;
-        while (!cmd_node_list.empty()) {
-            CMD_NODE* cmd_node = cmd_node_list.back();
-            delete cmd_node;
-            cmd_node_list.pop_back();
-        }
         delete (*ii).second;
     }
     my_data->commandBufferMap.clear();
@@ -2536,18 +2530,11 @@
     if (pCB->state != CB_RECORDING) {
         skipCall |= report_error_no_cb_begin(my_data, pCB->commandBuffer, caller_name);
         skipCall |= validateCmdsInCmdBuffer(my_data, pCB, cmd);
-        CMD_NODE* pCmd = new CMD_NODE;
-        if (pCmd) {
-            // init cmd node and append to end of cmd LL
-            memset(pCmd, 0, sizeof(CMD_NODE));
-            pCmd->cmdNumber = ++pCB->numCmds;
-            pCmd->type = cmd;
-            pCB->pCmds.push_back(pCmd);
-        } else {
-            // TODO : How to pass cb as srcObj here?
-            skipCall |= log_msg(my_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, 0, __LINE__, DRAWSTATE_OUT_OF_MEMORY, "DS",
-                    "Out of memory while attempting to allocate new CMD_NODE for commandBuffer %#" PRIxLEAST64, reinterpret_cast<uint64_t>(pCB->commandBuffer));
-        }
+        CMD_NODE cmdNode = {};
+        // init cmd node and append to end of cmd LL
+        cmdNode.cmdNumber = ++pCB->numCmds;
+        cmdNode.type = cmd;
+        pCB->cmds.push_back(cmdNode);
     }
     return skipCall;
 }
@@ -2557,12 +2544,7 @@
 {
     GLOBAL_CB_NODE* pCB = getCBNode(my_data, cb);
     if (pCB) {
-        vector<CMD_NODE*> cmd_list = pCB->pCmds;
-        while (!cmd_list.empty()) {
-            delete cmd_list.back();
-            cmd_list.pop_back();
-        }
-        pCB->pCmds.clear();
+        pCB->cmds.clear();
         // Reset CB state (note that createInfo is not cleared)
         pCB->commandBuffer = cb;
         memset(&pCB->beginInfo, 0, sizeof(VkCommandBufferBeginInfo));
@@ -2573,7 +2555,6 @@
         pCB->state = CB_NEW;
         pCB->submitCount = 0;
         pCB->status = 0;
-        pCB->pCmds.clear();
         pCB->lastBoundPipeline = 0;
         pCB->viewports.clear();
         pCB->scissors.clear();
@@ -2731,14 +2712,14 @@
 static void printCB(layer_data* my_data, const VkCommandBuffer cb)
 {
     GLOBAL_CB_NODE* pCB = getCBNode(my_data, cb);
-    if (pCB && pCB->pCmds.size() > 0) {
+    if (pCB && pCB->cmds.size() > 0) {
         log_msg(my_data->report_data, VK_DEBUG_REPORT_INFO_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, 0, __LINE__, DRAWSTATE_NONE, "DS",
                 "Cmds in CB %p", (void*)cb);
-        vector<CMD_NODE*> pCmds = pCB->pCmds;
-        for (auto ii=pCmds.begin(); ii!=pCmds.end(); ++ii) {
+        vector<CMD_NODE> cmds = pCB->cmds;
+        for (auto ii=cmds.begin(); ii!=cmds.end(); ++ii) {
             // TODO : Need to pass cb as srcObj here
             log_msg(my_data->report_data, VK_DEBUG_REPORT_INFO_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, 0, __LINE__, DRAWSTATE_NONE, "DS",
-                "  CMD#%" PRIu64 ": %s", (*ii)->cmdNumber, cmdTypeToString((*ii)->type).c_str());
+                "  CMD#%" PRIu64 ": %s", (*ii).cmdNumber, cmdTypeToString((*ii).type).c_str());
         }
     } else {
         // Nothing to print