Move tracking of generation to MCMC only
Remove tracking of accept/reject counts (unused)

These counts were being tracked by MCMC and were per parameter.
Move proposal and update weights to Model class
Simplify MCMC and move output to separate class

The MCMC class has been stripped to its bare minimum. I moved many
functions to the Model class (where I think they belong). I also moved
output-related code to separate classes (DataWriter and derived
classes).
MCMC destructor does not need to be virtual
Create separate proposal classes for each proposal
Create abstract class EventParameterProposal

This class handles proposals for single parameters; derived classes
implement specific methods to handle the actual parameter values.
Change method name for update beta init scale
Refactor updating tree after parameter changes
Add beta init and beta shift proposals
Add node state proposal
Fix calculation in the node state proposal
Remove unused variables
Create separate variable for acceptance ratio
Fix log prior ratio calculation for event number
Stop spread of NaN in acceptance ratio calculation
Change NodeStateProposal.cpp headers
Re-arrange order of includes
Make event configuration validation a setting
Change the way settings are accessed

Configuration settings used to be accessed by a specific method, such
as getOverwrite(), now they are accessed by a single template method,
where the return type is specified, such as get<bool>("overwrite").
This form of accessing settings is more flexible because new classes
can easily add their own settings without the programmer having to
create specific accessor methods for them.

Also, the class Autotune was removed.