Support GetObject for large (>4GB) files.

In general, GetObject for large files is much like SendObject; you
keep trying to transfer data until the sender stops. The existing
code does almost everything you need, except it doesn't use a
sufficient condition to detect the case.

While you might think that a large transfer would be signaled with
a containerLength of 0xFFFFFFFF - this has not proven the case in
my testing; what I see is the file size truncated to 32bits. This
makes the existing condition ineffectual.

An alternative condition, suggested by Han-Wen, is to simply always
use the sender-limited transfer pattern if the transfer is larger
than one packet. This means that the containerLength is ignored for
any transfer over 512 bytes, but it works, and it's really the only
way to handle the corner case where the large file size truncates
to a small value < 512.