Wip promote copies

This branch contains the work required to support on-demand promote in caching pools.

We should probably delay merging until we have some tests to go along with it (I've so far just been using variously hacked versions of the caching_redirects.sh script that aren't doing much for coverage), but I believe it's ready for review. We can also discuss what tests we want implemented.