Rewrote the text wrapping algorithm.
Fixes some subtle issues with newlines at the end of a word that would be at the end of a line.
Still not quite perfect (sometimes goes to a new line when it's not necessary), but at least things aren't overflowing out of TextComponents anymore.