code: public static List<Instance> buildHierarchicalList( Instance inst ) {
  
  		List<Instance> instanceList = new ArrayList<> ();
  		List<Instance> todo = new ArrayList<> ();
  		if( inst != null )
  			todo.add( inst );
  
  		while( ! todo.isEmpty()) {
  			Instance current = todo.remove( 0 );
  			instanceList.add( current );
  			todo.addAll( current.getChildren());
  		}
  
  		return instanceList;
  	}
docs: Builds a list of instances ordered hierarchically.
  <p>
  Basically, we give it a root instance (level 0).<br>
  This instance is added in the list head.<br>
  Then, it adds child instances at level 1.<br>
  Then, at level 2, etc.
  </p>
  <p>
  Last elements in the list are leaves instances.
  </p>
  
  @param inst the instance from which we introspect
  <p>
  It will be the first item of the resulting list.
  </p>
  
  @return a non-null list