update middleware `for_asset_file?` logic

Now needs to match an digested asset file with source that exists.
have Dassets `[]` operator build its asset file directly

With asset files being aware of their source, there is no need to
create them  via a digests file.  You have all the info needed to
just create them directly.
create asset files with just a digest path

Let the asset file compute it's fingerprint itself.  Now that
asset files are aware of their own source, they have this info
and don't need it passed in.
remove the digests file handling and cache cmd

They are not needed with the middleware serving and compiling asset
files as they are requested.
source files now handle output paths

Source files will only write (ie cache) digested output if an output
path is configured.  No output path is configured by default.  All
output path handling is removed from the asset file.

An example of using this would be to only configure you "public" dir
as the  output path in non-development modes.  With this you would always
be serving freshly digested source in development. But in non-development
you would digest the source on the first request and then serve
out of the public dir directly every request after that.