Build framework for file challenge (#2175)
cog is going to have to be able to validate that it knows a certain file exists. This is going to be implemented as a file challenge where the server tells cog to provide a hash for a range of bytes in a certain file with a certain salt. Therefore, cog needs the capability to hash a file with a salt when asked.