PaymentApp: Introduce PaymentAppDatabase class.

The class is providing APIs to read/write payment app related data(e.g. manifest
and associated service worker). It can be shared between payment_app_manager.cc
and payment_app_context.cc.

The payment_app_manager.cc contains a actual implementation of the
PaymentAppManager interface[1] used on the page or worker.
Also, the payment_app_context.cc can be used to query all manifests data[2]
in order to update payment request UI in Chrome layer.

We can summarize this CL as follows.
  1. Rename PaymentAppContext in content/browser/payments to
     PaymentAppContextImpl and then add PaymentAppContext interface in
     content/public to expose some APIs to Chrome layer.
  2. Write PaymentAppDatabase class and then move most of logics to access
     database from PaymentAppManager to the new class.
  3. Add a interface to query all manifests data in Chrome layer but it's not
     implemented yet in this CL. It will be implemented in follow-up CL[2].

[1] https://w3c.github.io/webpayments-payment-apps-api/#payment-app-manager
[2] https://codereview.chromium.org/2556433002

BUG=661608
TEST=existing unittests

Review-Url: https://codereview.chromium.org/2560293002
Cr-Commit-Position: refs/heads/master@{#437855}
14 files changed