Compose elements should allow changing the staging layout

Background

While playing around with !1413 (closed) I realized that only script elements are allowed to specify the "layout" of their dependencies. Since this is a convenient way to re-jig the project layout, but we don't always want to execute a script when we do that, it would be nice if compose elements could also specify staging layouts.

Task description

We should consider allowing compose elements to change the staging layout.

To do this we would simply need to replicate the script element behavior, though I think some quick broader discussion is warranted.

Acceptance Criteria

BuildStream's compose element provides a layout option in its config section.


UPDATE: This enhancement request refers to outdated API, at this point we should follow dependency configurations as we do with current ScriptElement and BuildElement, allowing dependency declarations to specify where they want to be staged.

Edited by Tristan Van Berkom