Add arg-sample code

@mjhubisz

This PR addresses issue #9 by merging the code needed for `arg-sample` into master.


One problem with doing parsing in a constructor is that it is hard to return an error code.  I usually do parsing is a method like `bool Tree::read_newick(...)` that then can return `false` if there was a problem with parsing.