redesign: source file `digest` method

This method digests a source file, meaning it compiles its content,
saves it to the output path, and updates/saves its fingerprint in
the digests file.

@jcredding ready for review.