Fixed bitstream distance calculations
Fixed bitstream distance calculations

When there's only one header or data field the distance to the
field of matching type is the full track size, not zero.

When there was only one DAM we previously calculated the
data extent as zero, then subtracted 1 to exclude the DAM itself.
Allocating -1 bytes resulted in a std::bad_alloc exception.

simonowen/samdisk,simonowen/samdisk,simonowen/samdisk