Fix overflow in genome shrink

This was causing infinite loops during certain large alignments.
`std::string::size` returns a `size_t`, which is 8 bytes wide on
64-bit Linux but `int` is only 4 bytes wide (and signed, to boot).