[WebPayments] Implement state transitions in desktop WebPayments dialog.

This CL implements a crude version of the state stack and sliding
transitions in the desktop WebPayments dialog. The states do pretty much
nothing except navigating between one another but this is intended as a
skeleton to build all the screens from.

In particular, this CL adds:
1- PaymentDialogState base class that all states inherit from
2- PaymentSheetState and OrderSummaryState, 2 implementations of
   PaymentDialogState
3- PushState() and PopState() functions on PaymentRequestDialog
4- Slide in/out animations when states are pushed and popped

A document outlining this design is available at go/pr-desktop-ui

BUG=667872
TEST=
1. Enable experimental javascript features
2. Visit a page that uses WebPayments and trigger the WebPayments flow
3. The dialog should display with the "Payment Sheet" open and an
   "Order Summary" button
4. Clicking "Order Summary" should slide in an "Order Summary" view
   from the right. It should contain a "Back" button
5. Clicking "Back" should slide the "Order Summary" view to the right
   and out of view, making "Payment Sheet" available again.

Review-Url: https://codereview.chromium.org/2528503002
Cr-Commit-Position: refs/heads/master@{#438398}
8 files changed