source file handler

This class is responsible for handling the digesting of source
files.  Digesting involves compiling the source through any engines,
fingerprinting the compiled output, and formatting the digest path
appropriately.

This handler class will be used by the compile command to get source
information and write it to the outputs appropriately.

@jcredding ready for review.