Factor out all text layout from TextField into TextFieldContent

This will make moving layout to a rendering backend on another thread
much easier