This adds a new type, `SharedMemoryCursor`, as well as platform support for mapping subregions of shared memory handles. This type will attempt to map the entire shared memory region, and will back off on the size of the region until it can successfully map a portion of the region to read data from. Ideally, this should help reduce the chances of encountering memory fragmentation issues when sending large JS structured clone buffers over IPC. Differential Revision: https://phabricator.services.mozilla.com/D233116