Part 4 of search provider refactoring.

Moves AddMatchToMap method to the common base class. Adds method parameters
so that both SearchProvider and ZeroSuggestProvider can use this method.

For SearchProvider this is a pure refactoring. I added some helper classes
in SearchProvider to avoid duplicating code.

For ZeroSuggestProvider, this introduces some additional functionality on
top of what it used to have. Mainly the method may record additional metadata on
the AutocompleteMatch. This metadata is not currently used by zero suggest
provider and as far as I can tell will not in any way affect the operation
of zero suggest provider today. In the future, some of the metadata
recorded will actually be useful (e.g. I am planning to take advantage of
deletion_url).

BUG=338955
TBR=mpearson

Review URL: https://codereview.chromium.org/158053002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251236 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 251236