Better sync behavior

Did a pretty big refactor of syncing.

The rule now is we don't download revisions older than min(current, previous). So ftl clients will have the ability to jump to either current or previous, but won't be able to go back further.

Also this fixes behavior where a client might be asked to purge an old revision, but it's their current active revision. 

Also, we're now doing some s3 operations in parallel, which is hopefully a great performance improvement.