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.
The issue is that the file isn't really being claimed as such. The operation being performed has the same semantics as a PutForEnvironment, but without needing to upload the entire file if you can prove ownership. Hence the PutForEnvironmentRequest name - you are requesting to do a PutForEnvironment.