improve layout algorithm

If a node has only one child we were previously greedily positioning it on the left edge of its allocated interval.

Now we look ahead past single-child descendants until we find a branch. Then we align vertically with it.

Created by  Kartik K. Agaram  on February 19, 2023
IYJ2W4KLBV65OP73D5SMFOMTDH2NDDK2REXRKXAWBCVJPWMXT4PQC
Change contents