Support an External Dictionary of Contacts

Allow support for an external custom source of contacts. By making
some classes & methods protected rather than private, it's possible
to allow for a derived class to extend the Chips behavior to load
contacts from an arbitrary source.

Most of the changes here are just access modifier changes but there's
one more substantial change:
Intruduced BaseRecipientAdapter#getMatchingRecipients() which matches
generated recipients with proper chips recipients from the external
sources.
Ideally RecipientAlternatesAdapter#getMatchingRecipients() should reside
in the adaper too but the goal of this CL was to do this minimal
modifications.

There's also a small change that beileve was a bug in IndividualReplacementTask:
The matchesFound() callback gets a list of matches found. It then iterates all
the original recipients and looks for those that have matches and replaces them.
So far so good but, if the original recipient doesn't have a match and is not a
phone number, the old code still replaces it with itself when it can simply skip
it I think.

Change-Id: I24e89f93ec15154ed8912664cd061fa2b5b18bd8
3 files changed