add Visitor pattern support for Composite Item tree

Add global abstract class ItemVisitor that handle visit methods.
Add specific ItemSearcher class (inherited of ItemVisitor) that handle
searches on the Item tree.
Add concrete IdItemSearcher class that performs researches on ID on the Item
tree.

Remove useless "using namespace std" from the header files.
Refactoring the tests and add IdItemSearcher related test cases.

Change Item constructor, Item::setParent, Folder::addSubItem,
Folder::removeSubItem, Folder::deleteSubItem to keep tree consistency in case
of Folder deletion and Item deletion (limiting useless loop calls between Item
and Folder).

Update Folder documentation with new subItem methods behaviour.

Also add accept(ItemVisitor) method to Item interface.
add documentation generation into the build process

The documentation is generated for the core project after each libcore
compilation, precisely after the link step, to avoid documentation generation
if the compilation failed.

The main idea is to force documentation generation at each compilation to keep
the documentation up to date with the code.
update gitignore to ignore documentation

Documentation is generated at each compilation, so users can get there own
documentation version by compiling the program. A documentation version
will be put at each Tag/release.
add ignore on core doc