Second part of transport-business logic separation (see parent diff description). This diff abstracts both BackupItem and LogItem as some objects stored in blob service that can be sent to the client as PullBackupResponse.
Each stored object must have holder. Also, such object knows how to construct a response, what metadata to include in it and what size it is.
This trait will be used in the next diff to create a generic blob-service-download stream and avoid lots of code duplication.
Depends on D6242