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.
Was used in tests but I've refctored that out so it can be unexported