Provide a (mostly) utf-8 aware, smart shorten function
Summary: See T234. In D477 we introduced a textWrap() function that isn't UTF-8
aware; provide one that is.
Test Plan: Ran unit tests.
Reviewed By: cadamo
Reviewers: cadamo, jungejason, tuomaspelkonen, aran
CC: aran, cadamo
Differential Revision: 559