refactor: split BackupPipeline upload logic into BackupUpload
BackupPipeline.swift was 536 lines (over the 500-line convention).
Move UploadContext + uploadExported into the existing BackupUpload.swift
alongside uploadSingleAsset. Pure refactor, no behavioral change.
Prep work for adaptive-concurrency additions in the next release.