[WIP] Rewrite of TreeView (FOLLOW #33)

Need to explode TreeView in smaller components to be able to test it.

 - [x] Create a TreeFactory to generate testable trees with hook capacities
 - [x] Add tests for TreeFactory
 - [ ] Rewrite tree directive to use TreeFactory