Card unmasking without form filling

This patch enables users of Autofill Manager to unmask credit cards even
when a credit card form is not being filled. This is accomplished by
refactoring the card unmasking functionality into its own class
FullCardRequest, owned by PersonalDataManager.

The FullCardRequest class is used to retrieve the full PAN and CVC of
the card. If the card is already unmasked, the user is still prompted
for the CVC, but there's no unmasking.

This is primarily useful for PaymentRequest, which provides the full PAN
and the CVC of a card to the JavaScript API.

Only one unmask request per Autofill Manager can be active at a time.
(There's one Autofill Manager per frame.)

The patch also exposes the card unmasking functionality to Java callers
through PersonalDataManager. Because there's only one instance of
PersonalDataManager in Java, only one unmask request from Java can be
active a time.

BUG=587995

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

Cr-Commit-Position: refs/heads/master@{#389520}
15 files changed