Adds support for ArrayBufferContents with external buffer.

The current implementation of WTF::ArrayBuffer assumes that underlying
buffer is always owned by the ArrayBuffer. This patch teaches
ArrayBufferContents about external buffers that are not owned by the
ArrayBuffer.

This support is need to implement JS bindings for mojo shared buffer
where a buffer owned by mojo needs to be exposed as an ArrayBuffer. More
details here: https://codereview.chromium.org/2720873002/

BUG=647036

Review-Url: https://codereview.chromium.org/2719883004
Cr-Commit-Position: refs/heads/master@{#453861}
6 files changed