Calculates capacity correctly.
Assign the capacity when allocating new mutable sparse arrays.
Implements -init.
Implements insertion.
calloc/memcpy instead of realloc/memset.

This was the source of an unbelievably subtle bug that I still don’t properly understand, which was causing nondeterministic (but generally reliable) crashes that seemed to be the result of heap corruption. This wasn’t the fault of the memset (vs. assigning (RXSparseArraySlot){0}), and it wasn’t strict aliasing with setting the slots; I have *no* idea what could have been happening here.

Conspiracy theories welcome.