vkEnumerateLayers: Update to match upstream

The upstream vulkan.h header removed maxLayerCount parameter
from vkEnumerateLayers. This patch implements that change
for the sample driver and layers.
diff --git a/loader/loader.c b/loader/loader.c
index de296fa..3325a10 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -1368,8 +1368,9 @@
     return VK_SUCCESS;
 }
 
-LOADER_EXPORT VkResult VKAPI vkEnumerateLayers(VkPhysicalDevice gpu, size_t maxLayerCount, size_t maxStringSize, size_t* pOutLayerCount, char* const* pOutLayers, void* pReserved)
+LOADER_EXPORT VkResult VKAPI vkEnumerateLayers(VkPhysicalDevice gpu, size_t maxStringSize, size_t* pLayerCount, char* const* pOutLayers, void* pReserved)
 {
+    size_t maxLayerCount;
     uint32_t gpu_index;
     size_t count = 0;
     char *lib_name;
@@ -1379,9 +1380,11 @@
     char layer_buf[16][256];
     char * layers[16];
 
-    if (pOutLayerCount == NULL || pOutLayers == NULL)
+    if (pLayerCount == NULL || pOutLayers == NULL)
         return VK_ERROR_INVALID_POINTER;
 
+    maxLayerCount = *pLayerCount;
+
     if (!icd)
         return VK_ERROR_UNAVAILABLE;
 
@@ -1417,11 +1420,11 @@
             count++;
             free(cpyStr);
         } else {
-            size_t cnt;
+            size_t cnt = 16; /* only allow 16 layers, for now */
             uint32_t n;
             VkResult res;
             n = (uint32_t) ((maxStringSize < 256) ? maxStringSize : 256);
-            res = fpEnumerateLayers((VkPhysicalDevice) NULL, 16, n, &cnt, layers, (char *) icd->gpus + gpu_index);
+            res = fpEnumerateLayers((VkPhysicalDevice) NULL, n, &cnt, layers, (char *) icd->gpus + gpu_index);
             loader_platform_close_library(handle);
             if (res != VK_SUCCESS)
                 continue;
@@ -1436,7 +1439,7 @@
         }
     }
 
-    *pOutLayerCount = count;
+    *pLayerCount = count;
 
     return VK_SUCCESS;
 }