API functions returning Promises should not throw exceptions.

http://heycam.github.io/webidl/#es-operations states that an API returning
a Promise should return a rejected Promise when an error occurs rather than
throwing an exception.

BUG=359386, 362992
R=nbarth@chromium.org, eroman@chromium.org

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

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