Introduced two S3 primitives:
- S3 path - a convenience struct to store object and bucket name. See C++ counterpart
- Multipart upload session - needed for Put requests to upload large blobs to S3. See C++ counterpart. Its implementation is added in the subsequent diff.
Depends on D5678