Feature: Add ability to output tree's node states

* Generalize writeTree by writing to ostream
* Add data writers to Model
* Add writeData methods to MCMC and Model
* Remove data writers from MetropolisCoupledMCMC
* Change StdOutDataWriter to use Model
* Change MCMCDataWriter to use Model
* Change AcceptanceDataWriter to use Model
* Implement Model::writeData
* Add ModelDataWriter class
* Make a method virtual
* Rearrange initializer list
* Add specific model data writers
* Add model data writer creation in model factory
* Create data writer in MetropolisCoupledMCMC
* Use the data writer to write model data
* Add specific event data writers
* Change parameter name in MCMCDataWriter.h
* Add settings for node state output
* Generalize writing trees by writing to ostream
* Add the node state data writer
* Delete the data writer
* Add node state writer to the trait model writer
* Doc: Describe node state data settings
* Remove unnecessary writeData methods