core package refactoring

 - Simplify parent management (remove consistency between setParent and add/removeSubItem)
 - Documentation refactoring
 - ItemManager renamed into ItemTree
 - Strong semantic associated to ItemTree (convenience class and global interface on entire tree, not
   particular Item).
 - Force Item to be constructed through a context (ItemTree) and delegates default parent and ID
   calculation to this context.
core refactoring (decoupling Item and previous ItemManager)

- rename ItemManager into TreeContext.
- remove strong coupling between Item and ItemManager.
- refactor TreeContext interface (only context method has bee kept).
- rewrite relative test cases and main example execution.
- rewrite documentation to specify undefined behaviours (in case of context
switch).