layers: MR95, Add renderPass compatibility checks to DrawState

Add functions to check renderpass compatibility based on spec.
Add check for renderPass compatibility at vkBeginCommandBuffers() for a secondary
command buffer where a framebuffer is included. The renderPass for that framebuffer
must be compatible with the renderPass for the secondary command buffer.
Add checks for renderPass compatibility at time vkCmdExecuteCommands() is called.
If secondary command buffer renderPass is not compatible with active renderPass
from primary command buffer, flag an error.
Also added a check at vkCmdExecuteCommands() time to make sure that framebuffer
from active renderPass matches any framebuffer that was set in secondary command
buffer (if any).

Conflicts:
	layers/draw_state.cpp
diff --git a/layers/draw_state.h b/layers/draw_state.h
index 51332ca..9cfb07c 100755
--- a/layers/draw_state.h
+++ b/layers/draw_state.h
@@ -72,6 +72,8 @@
     DRAWSTATE_STENCIL_NOT_BOUND,                // Draw submitted with no stencil state bound when stencil enabled
     DRAWSTATE_INDEX_BUFFER_NOT_BOUND,           // Draw submitted with no depth-stencil state bound when depth write enabled
     DRAWSTATE_PIPELINE_LAYOUTS_INCOMPATIBLE,    // Draw submitted PSO Pipeline layout that's not compatible with layout from BindDescriptorSets
+    DRAWSTATE_RENDERPASS_INCOMPATIBLE,          // Incompatible renderpasses between secondary cmdBuffer and primary cmdBuffer or framebuffer
+    DRAWSTATE_FRAMEBUFFER_INCOMPATIBLE,         // Incompatible framebuffer between secondary cmdBuffer and active renderPass
     DRAWSTATE_INVALID_RENDERPASS,               // Use of a NULL or otherwise invalid RenderPass object
     DRAWSTATE_INVALID_RENDERPASS_CMD,           // Invalid cmd submitted while a RenderPass is active
     DRAWSTATE_NO_ACTIVE_RENDERPASS,             // Rendering cmd submitted without an active RenderPass
@@ -200,12 +202,12 @@
     VkImageLayout initialLayout;
 } IMAGE_CMD_BUF_NODE;
 
-typedef struct _RENDER_PASS_NODE {
+struct RENDER_PASS_NODE {
     VkRenderPassCreateInfo const* pCreateInfo;
     std::vector<bool> hasSelfDependency;
     vector<std::vector<VkFormat>> subpassColorFormats;
 
-    _RENDER_PASS_NODE(VkRenderPassCreateInfo const *pCreateInfo) : pCreateInfo(pCreateInfo)
+    RENDER_PASS_NODE(VkRenderPassCreateInfo const *pCreateInfo) : pCreateInfo(pCreateInfo)
     {
         uint32_t i;
 
@@ -226,7 +228,7 @@
             subpassColorFormats.push_back(color_formats);
         }
     }
-} RENDER_PASS_NODE;
+};
 
 // Descriptor Data structures
 // Layout Node has the core layout data