Remove == and equals() methods from Allele class

Since this is a case class, methods are automatically provided that implement
the same logic.
Refactor likelihood calculation

This commit 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.

Closes #228.
Change Likelihood computation to use the Colt library.
Simplify Likelihood.likelihoodsOfGenotypes function

Always perform the calculation in log-space
formatting fix
more cleanup of likelihood testing

removing a bunch of boilerplate around converting pairs of characters
to Genotypes
Merge pull request #231 from ryan-williams/pr/229

some cleanup of likelihood testing
Better variable names in Likelihood.likelihoodsOfGenotypes
Merge pull request #229 from hammerlab/likelihood-refactor

Likelihood refactor