Credential Manager: Pass the correct credential type to the embedder.

Currently, we're passing WebCredential objects; we ought to pass
WebLocalCredential or WebFederatedCredential objects. This patch adds
a '::create' method to WebCredential which constructs the proper type,
given a PlatformCredential, and teaches PlatformCredential to talk about
itself in order to make that type checking possible.

BUG=400674

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

git-svn-id: svn://svn.chromium.org/blink/trunk@183523 bbb929c8-8fbe-4397-9dbb-9b2b20218538