We still don't want to fully rely on the CSS machinery because that would
require widgets, which is far too heavy for the number of render nodes we
need to regularly draw.
We don't need to render text in most cases. Additionally, that requires
inflating a GObject to extract from the capture.
Instead, try to determine if we will even want to render the text before
causing any of that work to happen.
Also setup the pixel range for the layout so it may ellipsize as necessary.
This allows us to pre-calculate the values and re-use them, while also
allowing for us to avoid inflating GObject's for marks unless it becomes
necessary to access additional information.
This is just playing around to get things to render. There is much to do
to ensure that we interact with this well (and cache some values for
faster generation on allocation changes).