This change causes us to read partition specifications from partition
specification sections and split output sections into partitions according
to their reachability from partition entry points.
This is only the first step towards a full implementation of partitions. Later
changes will add additional synthetic sections to each partition so that
they can be loaded independently.
Depends on D60242
nit: I am not sure how much Partitions = {{}}; is readable,
so I would replace with Partitions = {Partition()};
Though IMO any of these lines looks probably a bit better than these two lines.