We were using solid / solid names to select and label step keys, which is incompatible with
composite solids and dynamic solids.
This diff reuses the PipelineExplorerRoot utility function explodeCompositesInHandleGraph, which
resolves solid handles to its flattened constituent targets, while remapping the component solid
names in all the dependency references.
The main change to the explodeCompositesInHandleGraph was that inputs/outputs specified on the
composite solids were not being transferred to its mapped constituent solids in this function.
This resulted in some dependencies being missed (not sure if this was a bug in the explorer view,
but I think it might have been for some subset of composition shapes).
For dynamic solids, we just rolled up any mapped result to its container solid, by loosely ignoring
any [mapping_key] suffix using a regex match