Handle slightly odd ctfiles in the wild.

Bugs in 3factor in windows, and issues with off_t on windows and linux
have lead to ctfiles in the wild that have differing opinions of the
same version. Either showing the list of shas more than once int he same
version, or having 0 or a negative number of shas before the off_t 2gb
fixes, and the correct number afterwards. Since we parse the version
tree from newest to oldest (with modern allfiles ctfiles at least) if we
come across a version of a ctfile we already hae full information for,
then just ignore it.

Equally, assume any negative number of shas is actualy zero length for
purposes of the version tree.