Support document access strategy failover

Detect when scanning with the selected document access strategy fails,
and try to fall back to other strategies.

(This will allow using the Dummy strategy when d-t-m fails for some reason.)

Also, fix TextPosition strategy to avoid crashing without d-t-m.
> It's just not the same.
> Would you prefer a different method for removing a member of an array?

Thanks for the explanation, I was didn't know that the `[]` could act as both slice and splice. I would prefer the code just used assignment eg. `list[index] = []`.

> That's impossible. The currently active access strategy must have been selected from the list of available strategies, so it must be in the array. Nobody else is supposed to mess with that array.

That's fine then.

> Anyway, I can add a check, if that would make you feel more comfortable. Would it?

Tests would make me feel more comfortable.