Add support for letter tile avatars to ContactsPhotoManager

* Add LetterTileDrawable, a custom drawable used to display letter tiles
for contacts without a contact photo, instead of static bitmap resource

* Add a class DefaultImageRequest to ContactPhotoManager. This is essentially
a data holder object used to store and retrieve various parameters that
clients can use to configure the way they want their requested letter tile
avatars to be drawn.

* Add LetterTileImageProvider to ContactPhotoManager. LetterTileImageProvider
extends DefaultImageProvider, but returns instances of LetterTileDrawable
instead of BitmapDrawables when a default contact image is needed.

* Add two new APIs to ContactPhotoManager:
getDefaultAvatarForContact - This returns an instance of a LetterTileDrawable,
configured with the display parameters stored in the provided
getDefaultAvatarUriForContact - This returns an uri which the
ContactPhotoManager can use to recreate a DefaultImageRequest and hence
a LetterTileDrawable.

* Modify ContactPhotoManager.loadPhoto and loadThumbnail to accept a
DefaultImageRequest as a parameter.

* Modify the following classes to use the new ContactPhotoManager APIs. These
affect both the Dialer and People apps.

Bug: 13101785
Change-Id: Id1a87b459d6e63c42049739059a3b3ee202af837
43 files changed