Simplify 'Process' using sync_channel().
Ask rustdoc to ignore our Rust pseudo-code in documentation.
Add profiles for dev vs release.
Use TaskPool to simplify listdir.
Simplify key store a bit.
Localise saving logic in key_store and remove hash_store, as it didn't serve a clear purpose.
Minor indentation fix in SQL query.
Fix a race condition in listdir caused by the use of periodic for timeout.

This version of the code avoids the messy timeout code by instead having threads explicitly indicate completion by sending None.