Likelihood refactor

Moves the likelihood calculation code from Pileup and Genotype into
a new singleton object.

This refactoring enables a more efficient implementation that resuses
computation between genotypes that share alleles. On my local tests, the
likelihood calculation is about 40% faster than the previous implementation.
Overall that gives about a 10% performance boost to variant calling.

 * Create a new package and singleton object Likelihood for likelihood calculation code.
 * Remove likelihood calculation code from Pileup and Genotype
 * Port tests from PileupLikelihoodSuite and GenotypeSuite into a new test suite LikelihoodSuite
 * Port variant callers to use new likelihood calculation function.
 * Remove == and equals() methods from Allele class.

Closes #228.
Optimizations in the implementation. The performance improvement is mostly due to computing the likelihood of each allele only once, as opposed to however many times it appears in a genotype. Code to do that could in theory live in Genotype or Pileup, but I don't think it belongs there. I think Likelihood calculation, which assumes a certain kind of probability model, is more specific to particular variant calling implementations than Pileup or Genotype, which are generic. (It's like PileupFilters -- those could live in Pileup, but it's clearer I think to have them be separate.)