Widget draw_text support continued.

This patch bings us to a decent first-attempt at having a solid
draw_text method that returns the bounds and "somewhat" handles
newlines.