Introduce a checksum file cache service This service is responsible for caching the checksums computed from local file system. Because it's also used for dependency verification writing and checking, this cache uses the existing infrastructure which makes sure that if a file is updated locally, we expire the entry in the cache.

This is done because there are lots of places in the code where we used the legacy `HashUtil` class, which has no caching whatsoever. It's, however, quite common to have a build which generates sha1 checksums multiple times for the same file. For example, during publication.