Add support for Mac OS X sparse image files (.sparseimage).

The sparseimage file format was used before the introduction of sparse
bundles. It is a relatively simple format with a 4 KiB header containing
a block map from physical blocks to virtual blocks. When space runs out
in the header, an extension header (also 4 KiB) is written to the end of
the file before allocating the next block, appending its contents after
the extension header, and so on.

When encrypted, the sparseimage format is enclosed in a
CEncryptedEncoding wrapper (not the other way around, since that would
make it very difficult to reclaim space in the sparse image).