Performs synchronization from source to destination. Performs the three
        steps:

        1. Calculate signature of destination.
        2. Generate delta from source.
        3. Apply delta to destination.

def sync(self, src, dst):
        """
        Performs synchronization from source to destination. Performs the three
        steps:

        1. Calculate signature of destination.
        2. Generate delta from source.
        3. Apply delta to destination.
        """
        return dst.patch(src.delta(dst.signature(block_size=self.block_size)))