generalize Alleles to contain refBases & altBases, take 2

PROBABLY DON'T MERGE: this depends on the MD-tag fix in ADAM `0.13.1-SNAPSHOT`, which Frank estimated will go out in a release later this week. In the meantime, no need to have `master` point at an ADAM snapshot.

this PR includes indel code and some refactorings of Pileups, GenotypeAlleles, and others to support a universal notion of an Allele that is determined by multiple reference bases and multiple sequence bases.

I back-ported existing callers to be more general of their handling of variants/alleles, accordingly.

This should let us reuse a lot of @arahuja's bayesian/log-odds variant-analysis/filtering code across callers more easily.
Cool - I ran into the same ordering issue on something else I was working on, if sorted doesn't pick up on the implicit automatically, you should be able to pass an Ordering[Allele] by calling 

```scala
.sortBy(implicitly[Ordering[Allele]])
```

and that will work if Allele extends Ordered[Allele]