A bunch of performance optimizations to SamLocusIterator gaining about 35% speed up, including...

...converting to using ArrayLists instead of LinkedLists, restructuring accumulateSamRecord() and some general performance-related cleanup.
Could we have some more documentation on how ```accumulator``` relates to the incoming records?  For example, when ```accumulateSamRecord``` is called, it is assumed that either the list is empty or the first ```LocusInfo``` in the list is the base position of the first aligned base in the record.