internal/v4: implement archive PUT

This will allow the ingester to match the uploaded charm URLs to the original
launchpad (and therefore legacy charm store) revisions.
done