Using the -s flag on devices is extraordinarily slow due to using
fseek(3) a little too conservatively. Address this by using fseek on character/block
devices as well, falling back to getchar(3) only if we fail to seek or we're operating
on tape drives, where fseek may succeed while not actually supported.
This is dependent upon D10893 and D10937.
PR: 86485
Submitted by: arundel@, then massaged a little bit