layers: image transfer granularity check fixes

- Use appropriate VUIDs for all checks
- Update tests to check for VUIDs instead of message substrings
- Image granularity tests should be also be run on compressed images.
  They're *mostly* redundant with existing compressed-format-only checks,
  but I can't convince myself that they're *always* redundant, and the
  spec doesn't say to skip them.
- Removed comments that the checks should be moved elsewhere; IMO they're
  fine where they are, but I welcome second opinions.
- Compressed-format alignment checks should also apply to _422 single-plane
  formats.
diff --git a/layers/buffer_validation.h b/layers/buffer_validation.h
index 8cf1d83..7c7df98 100644
--- a/layers/buffer_validation.h
+++ b/layers/buffer_validation.h
@@ -207,7 +207,8 @@
 
 bool ValidateCopyBufferImageTransferGranularityRequirements(layer_data *device_data, const GLOBAL_CB_NODE *cb_node,
                                                             const IMAGE_STATE *img, const VkBufferImageCopy *region,
-                                                            const uint32_t i, const char *function);
+                                                            const uint32_t i, const char *function,
+                                                            UNIQUE_VALIDATION_ERROR_CODE vuid);
 
 void PreCallRecordCmdCopyImage(layer_data *device_data, GLOBAL_CB_NODE *cb_node, IMAGE_STATE *src_image_state,
                                IMAGE_STATE *dst_image_state, uint32_t region_count, const VkImageCopy *regions,