Import pristine PartitionAlloc files.
Make PartitionAlloc build on Gecko.
Rename some compat macros to avoid conflicts.
Use PartitionAlloc for all SpiderMonkey allocations.
Replace use of ScopedFreePtr with UniquePtr in SpiderMonkey.

ScopedFreePtr is deprecated and uses |free| directly, as opposed to
UniquePtr, which can be made to use js_free.
Use js_calloc for allocating ArrayBufferContents objects.
Copy sandbox option strings instead of adopting them.

Strings coming from JS objects are allocated on a separate heap,
but nsCString is unaware of that, and tries to free its underlying
buffer using a regular free(); because of that, we need to copy the
string into a separate buffer allocated from the correct heap.