Add new proof of access put logic

Add new APIs to ManagedStorage which allow a caller to "upload" a file by proving they have access to it, without needed to upload the whole file. They ask to put a file (supplying the checksums for the entire file) and are prompted to respond with checksums from a random byte range in the file. If the checksums match, then the put succeed as if the whole file were uploaded.
These sleeps are going to bite us. Can you please mock out time.AfterFunc, then patch it with a function that stores its operand so you can call it as if the timer expired?