Avoid creating intermediate strings in sanitizeMetrics

This patch avoids creating many intermediate strings, by instead using an array and then joining the elements, when writing dummy width/lsb entries for glyphs where those are missing.
For the PDF files (in our test suite) where this code path is hit, the average number of intermediate strings are well over 1000.
Since we know the length of the array beforehand, we can also avoid resizings by allocating the right number of elements when the array is created.