postMessage() should throw a DataCloneError on invalid transferables

As per the latest specification, postMessage() should throw a DataCloneError on
invalid transferables:
- http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#posting-messages
- http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#dom-messageport-postmessage

IE10 and Firefox behave according to specification but Blink was throwing an
InvalidStateError instead.

Also stop using extractTransferables() for the MessageEvent constructor and
rely on toRefPtrNativeArray() instead. extractTransferables() does more than
the MessageEvent constructor really needs and it is meant to be used to
extract transferables from postMessageArgument.

BUG=262887

Review URL: https://chromiumcodereview.appspot.com/19765010

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