TextLayout draw optimisation

If there's lots of text in a `TextLayout` (ie `MultiLineText`) then scrolling becomes quite slow. 10000 lines shows it quite well.

This allows a widget to query the current draw scissor. `TextLayout` uses it to not draw text that will end up being culled anyway. The same 10000-line test flies now.