media: extend UnalignedSharedMemory for new shared memory API.

Extends UnalignedSharedMemory to be created from a
PlatformSharedMemoryRegion. This may be backed by either a
legacy base::SharedMemory or the new API. In all cases the
shared memory is owned by UnalignedSharedMemory.

This CL also removes a legacy SharedMemoryHandle constructor from
WritableUnalignedMapping that had caused ownership problems
and updates the fake decode accelerator that used it.

See the following doc for more information on the next step
after this CL.

https://docs.google.com/document/d/13rMRD5kEl_5NFDOSWHEfmooBY2W5h5whNAl9nwBeEb8/edit#heading=h.x4ivxr8nivid

Bug: 849207
Change-Id: I12a2ec85c273bf8fe10303ffed5186572854b6de
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1594753
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#656751}
5 files changed