WebCrypto: Add interfaces for importKey().

Adds WebKit API interfaces importKey(). Also refactors CryptoOperation to match.

The key operations support both synchronous and asynchronous completions, as well as a separate synchronous initialization failure. The asynchronous operation is abortable (however nothing aborts it yet)

In order to test this, added a mock implementation of the interfaces which hardcodes some actions based on the bytes of the key. This allows for layout tests that verify the parsing and reflection of parameters.

BUG=245025
R=abarth@chromium.org

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

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