I'm attaching yet another updated patch (v3), the difference compared to the former patch is that now the alignment of completion candidate annotations is based on `string-pixel-width` and `display` text properties instead of padding with spaces. This deals better with more exotic strings that may appear in the link's title (again gnu.org is a good example here, as there are alternate link titles in different languages). Still I wonder if there's a more principled way to align such annotations, any suggestions?