Create an autofill Suggestion class.

There should be no functionality change.

Previously autofill results were passed through as a set of three or four vectors:
  std::vector<base::string16>* popup_values,
  std::vector<base::string16>* popup_labels,
  std::vector<base::string16>* popup_icons
  std::vector<int>* identifiers
all of which have to stay in sync. This makes it impossible to add metadata, function calls are ugly, and the code is error prone. As part of wallet credit card autofill, we'll need to add more metadata here.

This patch replaces this with a new autofill::Suggestion struct containing all of the information, and pipes this around to all the affected places. It also adds a new SuggestionBackendID struct to replace the old GUIDPair typedef which makes the code clearer.

There are three types of IDs for autofill suggestions which is kind of confusing: a GUID created by the database which is actually a GUID + an integer (GUIDPair typedef in the old code), an integer ID used by the frontend and IPC, and an intermediate integer used by the autofill manager to create the frontend int ID.

This patch adds the GUID and frontend integer ID to the new Suggestion class as the backend_id and frontend_id. It is kind of confusing to have two different types of IDs in the same class, and previously most code dealt with only one or the other. But I think the code is much cleaner not having to keep separate parallel lists of IDs all over the place.

Unified the naming in the autofill popup controller. It previously used name/subtext and now that it uses the standard Suggestion struct, I changed them to value/label to match everything else.

Added constants for the card types used by RequestAutocomplete

Added some additional stuff to the CreditCard class for wallet sync. Add additional members to the autofill table for wallet card manipulation. These are currently unused.

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

Cr-Commit-Position: refs/heads/master@{#308457}
46 files changed