Move text streaming functionality back into independent class

Streaming text into the renderer creates too much confusion and
possibilities for application errors.