Modified tree update methods to take a 'dry_run' parameter. Setting it to True
will compute the update without modifying the tree. This means the update method
now returns the updated parameter settings for the root node (since otherwise
doing a dry_run would be pointless).

Currently no way to get dry_run values below the root without dipping into the
private methods -- but this doesn't seem like it'll be an issue. (Famous last
words.)