Improving Jalview's MSA visualisation when hidden columns are present

Follow on thread with @vincentfourmond from

See also for details/commits

In addition to my somewhat extensive list of classes where viewport.getCharWidth is called, you might want to see how jalview.datamodel.ViewportRanges is being used. Kira Mourao introduced this class when she reengineered the overview window (see jalview.viewmodel.OverviewDimensions) - it may well make sense to move layout & mapping into ViewportRanges.