Modifications to bold contacts' first names.

For lists and headers, this is calculated by using a similar technique as we
use in the list view for highlighting text when the sort order and display
order do not match - we look for the overlap point between the display name
and the alternate display name, and bold the leading or trailing part, based
on the display order.

For the edit view, we convert the display name into a structured name (via an
API extracted from the structured name editor code that calls into the provider
to handle splitting), and then bold the span corresponding to the contact's
given name.

This also fixes an issue with the alternate display order in which we weren't
honoring that preference on the contact details view.

Change-Id: I6af048725541996cb303810a56a1ad79fc276e11
21 files changed