Added the C++ WHAM code

Note the majority of this code was written by Andrew Ritchie in the Webb
group. I helped develop a lot of the functions, headers and learned C++
alongside him. This is an adaptation of python code developed by Dr.
Daniel Ensign while in the Webb group.

This is a multidimensional Weighted-Histrogram Analysis program
writting in C++.  For more information about the algorithm employed,
refer to 'BEFEUS: Bayesian Estimation of Free Energy for Umbrella
Sampling' by Dr. Daniel L. Ensign.
Currently, this build can only handle up to 3 degrees of freedom,
but has only been tested up to 2.
NOTE 1: Be sure to make sure the file list format correctly adheres
to what is listed under the --filelist option information.  The
trajectory #
needs to be unique for each individual simulation.  This parameter is
used to group different degrees of freedom to the same biased
trajectory.  The numbering can start at 0 -or- 1.
NOTE 2:  When using the --first_frame and --last_frame flags, the
selection will show up at the begining and the end of the run, but the
number
of frames in each trajectory will still be listed as the total number of

frames for the trajectory, rather than however many were used.
NOTE 3: When assigning bin widths and coordinate ranges, use multiple
invocations of -w or include the values as a string within quotations
(the
order is the same order as the dimensions are listed in the --filelist
file).
NOTE 4: Make sure the unit (X) on --min/max_coordinate and --bin_width
match the coordinate bias value, flat range, and force constant in the
--filelist input.
NOTE 4: Assuming every trajectory has the same number of frames.  I can
fix this assumption, but for now it's easier not to.