intel: add intel_render_pass_{attachment,subpass}

Make intel_render_pass own an array of intel_render_pass_attachment and an
array of intel_render_pass_subpass.  Every subpass references the attachment
array for its outputs.

It gets a bit more clear that intel_fb is for intel_render_pass just like
intel_desc_set is for intel_desc_layout.  It has always been so at the API
level, but it was harder to see.

This is in preparation for an upcoming header change.
diff --git a/icd/intel/cmd_meta.c b/icd/intel/cmd_meta.c
index 8d6e439..32490b7 100644
--- a/icd/intel/cmd_meta.c
+++ b/icd/intel/cmd_meta.c
@@ -994,8 +994,11 @@
     const VkRect3D                         *pRects)
 {
     struct intel_cmd *cmd = intel_cmd(cmdBuffer);
+    const struct intel_render_pass_subpass *subpass =
+        cmd->bind.render_pass_subpass;
     const struct intel_fb *fb = cmd->bind.fb;
-    const struct intel_att_view *view = fb->views[colorAttachment];
+    const struct intel_att_view *view =
+        fb->views[subpass->color_indices[colorAttachment]];
 
     /* Convert each rect3d to clear into a subresource clear.
      * TODO: this currently only supports full layer clears --
@@ -1029,9 +1032,10 @@
     const VkRect3D                         *pRects)
 {
     struct intel_cmd *cmd = intel_cmd(cmdBuffer);
-    const struct intel_render_pass *rp = cmd->bind.render_pass;
+    const struct intel_render_pass_subpass *subpass =
+        cmd->bind.render_pass_subpass;
     const struct intel_fb *fb = cmd->bind.fb;
-    const struct intel_att_view *view = fb->views[rp->colorAttachmentCount];
+    const struct intel_att_view *view = fb->views[subpass->ds_index];
 
     /* Convert each rect3d to clear into a subresource clear.
      * TODO: this currently only supports full layer clears --