pimpl: some of the implementation separated to TreeImpl, so Tree class
does not know anything about ptree. It's a little step to issue #4