Bug 153040 Template definition should be removed after the report item is deleted
Steps to reproduce: 1.New a report, extends lib.label 2.Convert the label to template report item, and revert it back to the report item 3.Delete the label 4.Remove the included library Expected result: Library can be removed Actual result: A BIRT exception occurred. Plug-in Provider:Eclipse.org Plug-in Name:BIRT Model Plug-in ID:org.eclipse.birt.report.model Version:2.1.0.v20060808-0630 Error Code:Error.LibraryException.LIBRARY_HAS_DESCENDENTS Error Message:The library "Lib" can no be dropped because it has descendents "NewLabel" in the current module.
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/metadata/MetaDataDictionary.java
*/
	void addExtension( ExtensionElementDefn extDefn ) throws MetaDataException
	{
		assert extDefn != null;
		if ( StringUtil.isBlank( extDefn.getName( ) ) )
			throw new MetaDataException(
					MetaDataException.DESIGN_EXCEPTION_MISSING_EXTENSION_NAME );
		if ( extensionNameMap == null )
			extensionNameMap = new HashMap( );
		if ( extensionNameMap.get( extDefn.getName( ) ) != null )
			throw new MetaDataException( new String[]{extDefn.getName( )},
					MetaDataException.DESIGN_EXCEPTION_DUPLICATE_EXTENSION_NAME );
		extensionNameMap.put( extDefn.getName( ), extDefn );
		extDefn.build( );
	}
	/**
	 * Add a new validator to the dictionary.
	 * 
	 * @param validator
	 *            a new validator.
	 * @throws MetaDataException
	 *             if the validator missing its name or its name duplicates with
	 *             an exsiting one.
	 */
	void addValueValidator( IValueValidator validator )
			throws MetaDataException
	{
		String name = validator.getName( );
		if ( StringUtil.isBlank( name ) )
			throw new MetaDataException(