This reverts the behavior introduced by D43571.
D43571 was a code cleanup patch that introduced early removing of section commands.
It introduced the behavior change: LLD started emitting empty sections that
are explicitly assigned to a segment.
This behavior is not clean and we might produce empty sections in cases when we
could be more aggressive in removing them.
The problem here is that we should somehow preserve the information
about segment assigned to n empty section before we remove it from the list.
This patch adds an early phdrs propagation step, which is similar to one that
we do after sorting orphan sections step.