layers: Implement VU 00303-00308

Implement Valid Usages 00303-00308 with new function
ValidateBarrierLayoutToImageUsage() which verifies an
ImageMemoryBarrier's old/new ImageLayouts are compatible with its
Image's ImageUsageFlags.

Rename ValidateImageLayouts() to ValidateBarriersToImages().

Rename some variables:
- internal vars to use Google style.
- vars passed verbatim from Vulkan to use Vulkan names.

Fix issues revealed in layer tests due to these new checks:
- 2 new Unexpected messages in VkLayerTest.
- 1 failing VkPositiveTest.

Update VU database for check_implemented = Y.

Change-Id: I8723f99d515fbea707299b4d1fcf33a4da6b7b0b
diff --git a/layers/buffer_validation.h b/layers/buffer_validation.h
index e83ee9b..c318fb2 100644
--- a/layers/buffer_validation.h
+++ b/layers/buffer_validation.h
@@ -111,8 +111,11 @@
 void TransitionImageAspectLayout(layer_data *dev_data, GLOBAL_CB_NODE *pCB, const VkImageMemoryBarrier *mem_barrier, uint32_t level,
                                  uint32_t layer, VkImageAspectFlags aspect);
 
-bool ValidateImageLayouts(layer_data *device_data, VkCommandBuffer cmdBuffer, uint32_t memBarrierCount,
-                          const VkImageMemoryBarrier *pImgMemBarriers);
+bool ValidateBarrierLayoutToImageUsage(layer_data *device_data, const VkImageMemoryBarrier *img_barrier, bool new_not_old,
+                                       VkImageUsageFlags usage, const char *func_name);
+
+bool ValidateBarriersToImages(layer_data *device_data, VkCommandBuffer cmdBuffer, uint32_t imageMemoryBarrierCount,
+                              const VkImageMemoryBarrier *pImageMemoryBarriers, const char *func_name);
 
 void TransitionImageLayouts(layer_data *device_data, VkCommandBuffer cmdBuffer, uint32_t memBarrierCount,
                             const VkImageMemoryBarrier *pImgMemBarriers);