[WIP] Avoid computing the reference base and hanging on to md tag

This builds on #220.

Right now we keep the referenceBases and mdTag even though they contain the same information - if we have computed the referenceBase we no longer need the mdTag and the mdTag can be fairly large memory-wise.  However, it is useful currently to quickly check whether a pileup element is a match.  Instead we should pass in a reference base to each pileup a and pileup element

This is a bit clunky right now but wanted to hear thoughts on doing this or not.
Also interesting note from profiling, because of all the `lazy val