A "content store" abstraction.

This is where the file content is stored, away from the repo.

Also two implementations of the abstraction: a local one for testing
and a remote one for production use.
I know it's a temp file in the git shed implementation, but is it relevant to the content store? Or is this a suggestion to a user that they should be using a temp file?