(PUP-1044) Make FileBucket::File use a file when possible

This replaces the usage of binread of the entire file contents whenever possible (for computation of checksums, or for returning the size of the data).
Same backwards compatibility issue as above.
Use FileUtil::copy_stream instead and it should clear up in Travis CI.