public static <T> ImmutableList<T> load(Class<? extends T> service, ClassLoader loader) {
    return load(service, loader, Optional.empty());
  }
A replacement for {@link java.util.ServiceLoader} that avoids certain long-standing bugs. This
simpler implementation does not bother with lazy loading but returns all the service
implementations in one list. It makes sure that {@link URLConnection#setUseCaches} is called to
turn off jar caching, since that tends to lead to problems in versions before JDK 9.

@see <a href="https://github.com/google/auto/issues/718">Issue #718</a>
@see <a href="https://bugs.openjdk.java.net/browse/JDK-8156014">JDK-8156014</a>
value/src/main/java/com/google/auto/value/processor/SimpleServiceLoader.java