code: public <T> List<? extends T> configurations(final Class<T> type) {
          return configurationTree().valuesByType(type);
      }
docs: IMPORTANT: method semantic is different from {@link #configuration(Class)}, which use direct class
  declaration match, whereas this method searches by all assignable types.
  <pre>{@code class Config extends Configuration {
  Sub sub;
  SubExt ext; // SubExt extends Sub
  }}</pre>
  {@code configurations(Sub.class) == [sub, ext]}, but {@code configurations(SubExt.class) == [ext]}.
  <p>
  Useful when multiple sub configuration objects could be used and all of them are required in some
  universal bundle.
  <p>
  Note: only custom types may be used (sub configuration objects), not Integer, Boolean, List, etc.
  
  @param type target configuration type
  @param <T> value type
  @return list of configuration values with required type or empty list
  @see #configurationTree() for custom configuration searches