layers: Add NULL/sType checks for struct members

Add param_checker support for validating struct members.  Messages
are logged for the following conditions, based on conditions
specified in vk.xml:
 - A pointer is NULL and is not marked as optional in the XML
 - An array is NULL and is not marked as optional in the XML, unless
   its count is 0
 - An array count is 0 and is not marked as optional in the XML
 - A structure's sType value does not match the value specified
   in the XML

Addresses GL105, GL109, GH82

Change-Id: I7063fe2582b30fdfc0006fe945a0f9c84a2aa66a
diff --git a/vk.xml b/vk.xml
index 515f2d1..41e151a 100644
--- a/vk.xml
+++ b/vk.xml
@@ -1174,7 +1174,7 @@
             </validity>
         </type>
         <type category="struct" name="VkPipelineInputAssemblyStateCreateInfo">
-            <member><type>VkStructureType</type>        <name>sType</name></member>                          <!-- Must be VK_STRUCTURE_TYPE_PIPELINE_IINPUT_ASSEMBLY_STATE_CREATE_INFO -->
+            <member><type>VkStructureType</type>        <name>sType</name></member>                          <!-- Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO -->
             <member>const <type>void</type>*            <name>pNext</name></member>                          <!-- Pointer to next structure -->
             <member optional="true"><type>VkPipelineInputAssemblyStateCreateFlags</type>    <name>flags</name></member>      <!-- Reserved -->
             <member><type>VkPrimitiveTopology</type>    <name>topology</name></member>