Extension:MirrorTools/Upload

PullBot

 * rc: Get timestamp, etc. data. Switch to needsuploadnullrev status.
 * nullrev: Get revision ID (not really a null rev). Switch to needsimageinfo status.
 * imageinfo: Get path to download. Switch to needsimagedownload status.
 * imagedownload: Get the image. Switch to readytopush status.

API

 * Move any existing file out of the way
 * Save that file data to oldimage
 * Remove that file data from image
 * Figure out the appropriate directory to save the new file to
 * Save the new file there
 * Save that file data to image
 * MirrorEdit to add the revision