model the asset file

This abstracts how the asset md5 checksum is calculated and provides
in a convenient API.

This will be used the the digest subcommand when building the
digests file.

@jcredding ready for review.  pretty straightforward.