Allow creating hashes for a directory based on contents

I have a large resource directory and I want to keep my hashes file small (and so fast to load).

I've implemented support for creating hashes of directories which are calculated from the hashes of their contents. Additionally, a memoizer is used to avoid hashing the same file twice.