15699: Fix handling of streams with multiple refs to a block ID.
The manifest normalization code in the Ruby SDK (and therefore
Workbench) was based on an incorrect assumption that each block
locator could only appear once in a given stream.
If a manifest referenced the same block more than once, copying a file
from that manifest into a new one would produce a new file with the
correct size, but wrong data.
The new code uses a different strategy that deduplicates block
references in common cases, although not in all possible cases.
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>