XArray updates for 4.20-rc4

We found some bugs in the DAX conversion to XArray (and one bug which
predated the XArray conversion).  There were a couple of bugs in some of
the higher-level functions, which aren't actually being called in today's
kernel, but surfaced as a result of converting existing radix tree &
IDR users over to the XArray.  Some of the other changes to how the
higher-level APIs work were also motivated by converting various users;
again, they're not in use in today's kernel, so changing them has a low
probability of introducing a bug.

Dan can still trigger a bug in the DAX code with hot-offline/online,
and we're working on tracking that down.