Data structure for (scaled) Gaussian kernels
Brownian motion likelihood and simulation calculation.

This is an early prototype for ingredients that might be useful
in constructing likelihoods.  Early early days.
Combining Gaussian kernels
Determine if all tree names are in a vector of names
Associate tree and data
Generic programming is generic
Duplicate the topology of a tree.

At the R level, this only appears to clear out the data field, which
is not very interesting.  However, at the C++ level it can build a
tree of a different type of data but the same topology (e.g.,
converting a tree<node<Robject>> -> tree<node<int>>.  Will come in useful
in a number of places.
Remove is_node_type; doesn't work reliably.

This also helps strip out an Rcpp dependency in the guts of the classes
Work towards more generic node.

I'm defining a new class node_wrapped contains a node (in the same
way that tree_wrapped contains a tree).  The idea is that if we
wrap a node with a data slot of Rcpp::RObject then provided that
the node<T> has a wrappable type T we can convert to
node_wrapped<Rcpp::RObject>.

It'd be nice to do this without going through a wrapper, but if
we target node<Rcpp::RObject> in this way then we get a recursive
set of calls to wrap (probably get-aroundable with some template
magic, but this current approach involves the least amount of
depth of understanding of how Rcpp's as/wrap and type traits work).

This will probably slow down the C <-> R translations a bit, but
saves writing a ton of code.  This will be important when we start
making trees of specific types because we should immediately be able
to start accessing them.
Progress towards a generic tree export, and exposing less of the tree

Moving away from the iterators now that this is mostly working.
Major surgery still to come.

This is mostly to support trees with exotic data types without
writing lots of boilerplate (required by the work on models) and
to let the trees be useful outside of forest and in packages that
would use it at the C++ level (like diversitree2 will).
Remove old xnode/xtree in favour of new exported tree type.
More informative typedefs in node/tree_wrapper
Gaussian distributions now proper exported type
Basic branch_pair type
Header reorganisation
Header reorganisation for testing code
Header reorganisation for main tree classes