Rename ItemTreeListener file.
Refactor name/package to match new file.

Not sutable for an API release yet because it's still dependant on the full ItemTree class.
Make ItemTree implement an interface for API.
Use IItemTree where possible.
Add IItemTreeCategory for API use.
Use IItemTreeCategory where possible.
Add IItemTreeItem for API use.
Use IItemTreeItem where possible.
Merge branch 'ItemTreeAPI' into develop