code: public static <A> Will<List<A>> when(Iterable<? extends Will<? extends A>> wills) {
          return forListenableFuture(Futures.<A>allAsList(wills));
      }
docs: Creates chain from provided Wills
  
  @param wills Wills to be chained
  @param <A>   Type of Wills
  @return Chained Will