TST: fix 24 xfails in maybe_promote
Vague gameplan: I think I've got a handle on the `if not boxed` xfail tests that are left, will incrementally fix them over a few more steps.  Then the `if boxed` cases all correspond to passing `ndarray` for `fill_value`, which never happens in the tests except for dedicated tests designed to do exactly that.  If we can rule that case out, we can remove most of the remaining xfails (and a lot of complexity in the test code) in one swoop.