XCOMMONS-653: Control the dispose() order when disposing Components

Conflicts:
	xwiki-commons-core/xwiki-commons-component/xwiki-commons-component-default/src/test/java/org/xwiki/component/embed/EmbeddableComponentManagerTest.java
XCOMMONS-653: Control the dispose() order when disposing Components
* Improve algorithm