add putText and putTextLn

I would like to change putStr to accept either String or Text. However, for putStr that would require either an explicit type signature or extended default rules, so using a different name putText seems better.

But CorePrelude already exports putStrLn that only takes Text, so maybe it is better to follow that convention?
This is the one change that confuses me. Why is this necessary?