WebCrypto: Refactor the WebCryptoOperation interface to support errors.

This allows the embedder to:

  (1) Throw an error during initialization of the CryptoOperation (which will result in throwing an exception to Javascript)

  (2) Terminate the CryptoOperation with an error at any point after successful initialization. This error will be delivered via the Promise's reject handler.

The previous interface only allowed completing with an error during finish(), so any errors encountered during process() would have to be buffered until the end.

BUG=245025
R=abarth@chromium.org

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

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