Javadoc
Generate a new Cigar that maps the operations of the first cigar through those in a second
For example, if first is 5M and the second is 2M1I2M then the result is 2M1I2M.
However, if first is 1M2D3M and second is 2M1I3M this results in a cigar X
ref : AC-GTA
hap : ACxGTA - 2M1I3M
read : A--GTA - 1M2D3M
result: A--GTA => 1M1D3M
ref : ACxG-TA
hap : AC-G-TA - 2M1D3M
read : AC-GxTA - 3M1I2M
result: AC-GxTA => 2M1D1M1I2M
ref : ACGTA
hap : ACGTA - 5M
read : A-GTA - 1M1I3M
result: A-GTA => 1M1I3M
ref : ACGTAC
hap : AC---C - 2M3D1M
read : AC---C - 3M
result: AG---C => 2M3D
The constraint here is that both cigars should imply that the result have the same number of
reference bases (i.e.g, cigar.getReferenceLength() are equals).