Adds a Compose operation that accepts a `func(*Composer) (T, error)`,
and returns an `Output[T]`.
Inside the function,
`*Composer` may be used to await any `Output` value,
and compose its result in a type-safe manner.
Based on
[Type-safe output composition](https://github.com/pulumi/pulumi/discussions/13057#user-content-type-safe-output-composition)
from the Pulumi Go Generics RFC.