code: public static <T> CachedObservable<T> cache(Observable<T> source) {
          return new CachedObservable<T>(source);
      }
docs: Returns a cached {@link Flowable} like {@link Flowable#cache()}
  except that the cache can be reset by calling
  {@link CachedFlowable#reset()}.
  
  @param source
  the observable to be cached.
  @param <T>
  the generic type of the source
  @return a cached observable whose cache can be reset.