Renaming  back to WIP name of , which we decided on the call today was better.
Changing the 'monoallelic' model to just 'allelic'.
Adding `Allele`s that are sets of `Allele`s.

Now to make a `Call` on several `Allele`s being present or absent you define a new `Allele` for that set, instead of just making a `Call` that spans `Allele`s.
Adding `Variant`s and `VariantConstriant`s.

I'm adding a `Variant` type, found in its natural habitat of a `VariantSet`, which encodes a set of alleles on which one wants to make mutually exclusive calls (as in VCF).

I'm also adding a `VariantConstraint`, which exists at the intersection of a `Variant` and a `CallSet`. It holds the bits of the current API's `Call` that didn't make it into the new `Call` (i.e. genotypeLikelihood) and allows you to say that, while you've assigned likelihoods to your `Call`s that theoretically could admit a `CallSet` being some strange ploidy, the actual total ploidy of the `Call`s on `Allele`s of that `Variant` in that `CallSet` is, say, diploid, with some joint likelihood distribution over the various diploid genotypes.