[blob-service] Implement download logic with new db
Summary:
Part of ENG-4269.
Most of this code is copy-pasted from http::handlers::blob::get_blob_handler
Decided to create a separate download object, similar to "upload sessions" we already have. The reasoning for this is that we typically have the following workflow:
- Get the download object metadata (size etc.)
- Set download params (range, format, streaming options)
- Stream the data to the client
Depends on D8453.
Test Plan: Tested later in the stack
Reviewers: michal, varun, jon, patryk
Reviewed By: michal, patryk
Subscribers: ashoat, tomek
Differential Revision: https://phab.comm.dev/D8454