[GCLowering] Try to conceptually simplify numbering/lifting code.
Try to consolidate the code to share common sections between scalar and
vector inputs (in preparation for adding other aggregates).
Also fixes a lost root bug:
if a select or phi used a value from a select or phi, it would fail to root it.
Adds support for handling vectorized select condition in LiftSelect.