[Payments] Refactor into PaymentRequestState and Spec
The result is more unit-testable.
PaymentRequestState will contain everything about the user's state in
the flow: what their selections are, and whether they are ready to pay.
PaymentRequestSpec will contain everything about the merchant
specification: are they requesting shipping info, payer's info, or what
are their supported forms of payments.
A further CL will attempt to remove the view controller's dependence on
PaymentRequest and rather just pass the state and the spec pointers.
BUG=
701345
TEST=browser_tests, components_unittests
Review-Url:
https://codereview.chromium.org/2742813004
Cr-Commit-Position: refs/heads/master@{#457054}
Committed:
https://chromium.googlesource.com/chromium/src/+/f1a7a37514b2eda7e895b0e52d120e937d58b385