Get rid of sections sorting with qsort and use an incrementally updated addrmap instead
This gives a massive speed up. The problem with the qsort is that we
qsort for any one of the thousands of jit loads/unloads, and when you
have thousands of objfiles, that gets very slow. In this scenario,
we're constantly adding/removing a handfull of obj_sections to a set
of thousands of already-sorted obj_sections. It's much cheaper to do
an incremental update.
I'm using a mutable addrmap for this, but I needed to add a new
primitive that allowed updating a region's object, to handle the case
of overlapping sections. The only primitive available, only allows
setting a value to a currently-NULL region.