3842: Keep::Manifest concatenates file information from manifest.

The previous implementation failed to consider the possibility that
file information would be spread across multiple lines of a manifest.
This would cause, e.g., the same file to be yielded many times from
each_file.

This requirement makes it impossible to return file size information
without parsing the entire manifest.  Because of that, I have reworked
the Ruby SDK API so that method names are more consistent with their
performance characteristics.  I have also added some methods to do
some basic file existence checking that do not require parsing the
whole manifest.

Closes #3842.  Refs #3720.