Implement Indexing service and listeners

This is a first version that implements most of the things to be able to plug another indexing system. I highlighted some issues with FIXME tags.
From a more general perpective :
- there is no listeners for portal pages creation/update/deletion
- the content of the object to index is passed in a map <String, Object>. I am not sure what was the initial idea behind this, but if I do like in the PR (putting the object (wiki, forum, ...) in the map), it makes it painful to process all types of contents in the IndexingService methods
- most of the listeners classes to implement needs to extends a class, instead of a simple interface (as it is usually the case with listeners), which makes it not very intuitive...