e54deec5

By: Michael Lynch <git@mtlynch.io>

Type storage output paths

Introduce mediastore.RelativeOutputPath and pass it through media storage write paths instead of using raw string keys.

This ports the focused RelativeOutputPath changes from slice-1 without bringing in the unrelated upload, Nix, or end-to-end test changes from that branch.