Refactored archive.

The split between an archive and a deploy was unclear and led to internal state leaking out.

An archive now knows how to upload itself to S3 and whether this is necessary. This behaviour is now unit tested.