code: static <L> Striped<L> custom(int stripes, Supplier<L> supplier) {
      return new CompactStriped<>(stripes, supplier);
    }
docs: Creates a {@code Striped<L>} with eagerly initialized, strongly referenced locks. Every lock is
  obtained from the passed supplier.
  
  @param stripes the minimum number of stripes (locks) required
  @param supplier a {@code Supplier<L>} object to obtain locks from
  @return a new {@code Striped<L>}