Fixing phutil_utf8_shorten().

Summary: Fixed phutil_utf8_shorten() to be combining character aware.

Test Plan: Unit tests. However, I think I may have not added enough test cases.

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin, AnhNhan

Maniphest Tasks: T2379

Differential Revision: https://secure.phabricator.com/D6025