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.
 > @pendingScan also doesn't need to be a property on this object,
 > it can just be a local variable returned by the method
 > that is then used byloadAnnotations.

It's recorded as a property because scan() can be called multiple times 
before it is finished.
(For example when annotations are loaded from more than one sources.)

When this happens, only the first cann should start a new scan; the 
subsequent scans
should simply wait for the existing scan to finish.

That's why we need to store the pending scan as a property of the 
object.