layers: Add extension Validation so loader will add layers with Validation

Also fix extension supported list in DrawState and ObjectTracker to include
their local extensions in GetGlobalExtensionInfo()
diff --git a/vk-layer-generate.py b/vk-layer-generate.py
index d9a7581..5e9c54a 100755
--- a/vk-layer-generate.py
+++ b/vk-layer-generate.py
@@ -200,11 +200,21 @@
         ggei_body.append('    uint32_t version;')
         ggei_body.append('    const char * const name;')
         ggei_body.append('};')
-        ggei_body.append('#define LAYER_EXT_ARRAY_SIZE 1')
-        ggei_body.append('static const struct extProps layerExts[LAYER_EXT_ARRAY_SIZE] = {')
-        ggei_body.append('    // TODO what is the version?')
-        ggei_body.append('    {0x10, "%s"}' % layer)
-        ggei_body.append('};')
+        if layer == 'ObjectTracker':
+            ggei_body.append('#define LAYER_EXT_ARRAY_SIZE 4')
+            ggei_body.append('static const struct extProps layerExts[LAYER_EXT_ARRAY_SIZE] = {')
+            ggei_body.append('    // TODO what is the version?')
+            ggei_body.append('    {0x10, "%s"},' % layer)
+            ggei_body.append('    {0x10, "Validation"},')
+            ggei_body.append('    {0x10, "objTrackGetObjectCount"},')
+            ggei_body.append('    {0x10, "objTrackGetObjects"}')
+            ggei_body.append('};')
+        else:
+            ggei_body.append('#define LAYER_EXT_ARRAY_SIZE 1')
+            ggei_body.append('static const struct extProps layerExts[LAYER_EXT_ARRAY_SIZE] = {')
+            ggei_body.append('    // TODO what is the version?')
+            ggei_body.append('    {0x10, "%s"}' % layer)
+            ggei_body.append('};')
         ggei_body.append('')
         ggei_body.append('VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionInfo(VkExtensionInfoType infoType, uint32_t extensionIndex, size_t* pDataSize, void* pData)')
         ggei_body.append('{')