S3 storage driver for next gen modifications

This still needs some more minor debugging.
This method is coming in at 250 lines. Let's break it down a bit. Leveraging Go's `io` package primitive plus some s3 specific implementations would keep the complexity down. Perhaps, some sort of `ChunkedWriterAt` that takes a `ReadSeeker` would help manage the hardest parts.