use real max glyph height

      - avoids breakage on fonts lacking an `X` glyph (#2506)
      - avoids needing to create and mutate a temporary glyph (#2516)
      - lots of minor visual changes - mostly improvements notably more correct collision boxes for lines with tall glyphs

too many minor visual tests for github's pull request viewer, so will update them incrementally in next commits.