Avoid object creation in getAllChildrenIterable in most cases. (#14142)

API change from:
    public static Iterable<ClientConnector> getAllChildrenIterable(final ClientConnector connector)
to
    public static Iterable<? extends ClientConnector> getAllChildrenIterable(final ClientConnector connector)

avoids creating wrappers in case the component has either no subcomponents
or no extensions. This covers the vast majority of components.

Change-Id: I48ffd2f26f09c265fae6e1aaabdbaa655d52ffb8