code: public static ClosePropagatingAppendable propagateClose(
        LoggingAdvisingAppendable delegate, ImmutableList<Closeable> closeables) {
      return new ClosePropagatingAppendable(delegate, closeables);
    }
docs: Returns a {@link LoggingAdvisingAppendable} that:
  
  <ul>
  <li>Forwards all {@link LoggingAdvisingAppendable} methods to {@code delegate}
  <li>Implements {@link Closeable} and forwards all {@link Closeable#close} calls to the given
  closeables in order.
  </ul>
  
  <p>This strategy allows us to make certain directives closeable without requiring them all to
  be since this wrapper can propagate the close signals in the rare case that a closeable
  directive is wrapped with a non closeable one (or multiple closeable wrappers are composed)