have an asset file be aware of its source file and use it as needed

This updates the asset file so that it "knows" its `source_file`.
It determines its source file by scanning the sources for the last
one with a digest path that matches its path.

Using this new awareness, you can now create an asset file without
knowing its fingerprint.  You can also get the content or fingerprint
from an asset file, even if its backing output file doesn't yet
exists.  An asset file will read (ie digest) this info from its
source file if its output file doesn't exist yet.

This is extemely useful b/c now we can look up and digest source
files given only their output digest path.  This gurantees that
if an asset file's content is requested, it will be there on
demand.