Added AdamContext.referenceLengthFromCigar

Adds a new method which has some utility (for some of our code): 
 
ADAMContext.referenceLengthFromCigar, which calculates the 'length along the reference sequence' of an alignment record from its Cigar string. This is useful because the 'rec.start + referenceLengthFromCigar(rec.cigar)' is a natural 'end' value which can be used to calculate whether an ADAMRecord overlaps a given region *along the reference*.  

From this, we can calculate overlap queries on ADAMRecords without having to go through the (somewhat cumbersome) ReferenceMapping framework.  

Thoughts?  Does this duplicate code that's already somewhere else in ADAM?  Also, I'm not parsing the Cigar strings using Picard but rather defining my own quick-and-dirty regex for them, I don't know how people feel about that.