How to go between JS BigInts and TypedArrays

We now have native BigInts in JavaScript (not just 64-bit integers,
but any arbitrary precision of integer with no pre-defined bit-width). Yay!

However, BigInts have a sordid past... and JavaScript has a sordid past,
so the new BigInt primitives are shimmed in and both hold to old, unhelpful
JS conventions as well as break some new conventions because, well, it's just
how the cookie crumbled.

BigInt64Arrays are not exactly TypedArrays

When you're glancing over the almost non-existent documentation for BigInt you'll likely
come across BigInt64Array and BigUint64Array, which are mostly unrelated.

As the name implies, these ints are not trueBigInts, but rather capped at 64-bits wide.

However, they aren't just Numbers either.

Numbers can only survive normal bitwise
operations up to 31-bits. With a little triple-shift trickery they can be coaxed into
behaving well will a full 32 bits, but the full width 52-bit integers is not supported.

These BigInt64Array elements will work with many bitwise operations
(though signed / negative numbers are still problematic for some operations).