cleanup unnecessary includes
made TreeBuilder a TreeProvider

added the TreeProviderPtr operator and class implementation
it is likely, providers act on a repository.

therefore the virtual method repository() was moved to BaseProvider