SI-7622 Clean Up Phase Assembly

Allow phases (internal or external) to opt-out of assembly. In particular, plug-ins and optimizer phases that are not enabled will not be plugged in.

Otherwise, this PR is not a clean up so much as a hosing down the sidewalk. "Phase assembly" itself deserves closer inspection.

I think this is still useful, maybe someone agrees.  The fun part is mostly the -Xshow-phases, to see what's enabled or not.

This yet-another-rebase supersedes https://github.com/scala/scala/pull/2790.