version to 0.4.0

* `SourceCache` cache handling (#44)
* updated the asset file to access its source via a cache object (#43)
* use a thread-safe file store implementation for writing digested asset files (#42)
* move the 'digest' method off of the source file and onto the asset file (#41)
* removing a bunch of source handling that has proven unnecessary (#40)
* Rework digesting and outputting files (#39)
* rename asset file `md5` to `fingerprint` (#37)
* updating the README to include all the latest API details (#38)
* have an asset file be aware of its source file and use it as needed (#36)