refactor PileupElement, elementAtGreaterLocus

- elementAtGreaterLocus was mimicking the vals in PileupElement;
  cleaner to advance through loci by making new PileupElements
  at each CigarElement
- keep all CigarElements around in PileupElement; track current
  idx into that array
  - used especially in indel code downstream
- correctly handle insertions at the start of a contig (include
  trailing reference base)
- correctly handle insertions at the start of a read (skip them;
  they don't count for reference locus that lands at the first
  read-base after them)
import nits
remove PileupElement.sequencedSingleBaseOpt

doesn't generalize well to an insertion-capable world, and isn't
really that useful anyway.
generalize ReferenceVariant to multiple ref bases

in preparation for broader Deletion support
add simple insertion-calling

IndelPoCCaller can now call both.

Next step: working deletion and insertion calling into existing
callers.
Merge pull request #179 from hammerlab/slo

indels PoC, take 2