Working-but-not-polished GetRange fixes.

there's still more cleanup to be done here, but the basics are working.
one cat test is still failing -- we try to pull the last three bytes of a file
before we know how large the file is; this is a weird corner case, but we do
want to fix it.