Show current buffers in the middle of the tabline

This improves the current work-around to always show the current buffer in the middle of the tabline, as well as preceding and subsequent buffers.

The number of buffers to show is determined by the average buffer width, which itself is based on the approximate width of each formatted label. This is probably not very fast but I'm not sure how to get this information from the builder itself, since AFAIK it's only assembling expressions that will then be evaluated by Vim directly.
I also deliberately don't cache these values and the window width, so the number of buffers will adapt as a window is resized.