Modified MathUtil to have better named and more useful functions

added a unit test for the haplotypeProbabilities
Addressed changes requested by reviewer.
Merge pull request #49 from broadinstitute/yf_fingerprinting_rewrite

Modified MathUtil to have better named and more useful functions
moving CircularByteBuffer to its own class
Merge pull request #53 from broadinstitute/nh_circular_byte_buffer

moving CircularByteBuffer to its own class
This makes a fundamental change to how we run Picard.  We now have a
single JAR (command line program), rather than multiple JAR (one per
tool). In this brave new world, the single command line program is given
the the command line program name (ex. SamView) to specify which tool to
run.  We also provide a convenient summary of all of the tools
available.

For the developers, we add a facility to add new command line programs
to the single JAR, by extending the PicardCommandLine and adding the
package name(s) for us to search for classes that extend
CommandLineProgram.  The usage is now put in
CommandLineProgramProperties, where we can also specify short usages
(for the summary help message), program versions, and program groups.
The latter is useful for grouping tools that operate on common filetypes
or have similar function (ex. SAM/BAM).

We made a number of new tools public, coming from our internal toolset.
These include: BaitDesigner, CalculateReadGroupChecksum, CheckTerminatorBlock,
CollectIlluminaBasecallingMetrics, CollectIlluminaLaneMetrics,
CollectJumpingLibraryMetrics, CollectOxoGMetrics,
CollectQualityYieldMetrics, CollectRrbsMetrics, GatherVcfs,
LiftOverIntervalList, ScatterIntervalsByNs, and SplitSamByLibrary.
These may prove useful, or not.

Enjoy!