ui: Implement font atlas overflow

We keep a sliding window along Y axis and try to maintain some amount of space in the texture that is not used by any cached glyphs.
In case of oversubscribed texture and/or inefficient layout this can lead to severe thrashing and occasional missing glyphs, but it’s better than just giving up.
The layout within one stripe is still very naive and could be significantly improved.