Description
TreeUtil and TreeTypeProvider rely on implementation details, which prevents us from refactoring the plugins.tree package out of oak-core.
Also moving TreeConstants one level up would reduce the dependency to impl package throughout the code base.
For the former issue stillalex suggested to introduce a TreeTypeAware interface that defines the getter and setter for TreeType. Additionally I would suggest to introduce a marker interface ReadOnly to be able to detect if a Tree or Root only supports read operations.