Use versioned directories for apps

Previously there were two directories: [app]-current, [app]-previous
and a symlink to point to either one of those. To upgrade, current
was moved to previous along with the symlink, the new version
was uploaded to current and then the symlink was swapped from
previous to current.

Unfortunately Python virtualenvs aren't happy when they're moved
around. To fix this, apps are now stored in timestamped version
directories. This means we can arbitrarily change versions back
and forth. The downside is that disk usage is unbounded, so some
sort of cleanup command would be sensible.