Add smart clean up and buddy document architecture

Review Request #100795 - Created March 4, 2011 and discarded - Latest diff uploaded

Yannick Motta
Add document buddy architecture :
Allow kdevelop language plugins to manage related documents (like foo.h and foo.cpp for cpp plugin)
Language plugins may implement IBuddyDocumentFinder to define the rules (how to know if two documents are buddies).
Language plugins that implement IBuddyDocumentFinder  must register themselves with BuddyFinderRegistry.
An option was added to open documents side by side with its buddies.

Add smart cleanup feature to allow user to easily close outdated tabs related to each tab-bar.
Outdated tabs are files that are not currently used.
This feature is configurable, user can choose the time after which smart cleanup considers an unused tab outdated.
An document is considered active if it is active at least five seconds.
Last five documents are never outdated. 
If an outdated document has an active buddy, it is immune to cleanup.
User must manually start cleanup feature on the context menu of the tab-bar.
A dialog opens and user can see which documents are considered outdated. User can remove documents from the list.
If the user clicks "ok", tabs will be close.

Add an option to hide close buttons on tabs in order to free some space.
We have added two unit tests :
both pass without error.
manual test seems also working as expected.