code: public <S extends T> S copyIntoSubclass(Class<S> subclass) {
          S copy = Instantiator.of(subclass).instantiate();
          return copyInto(copy);
      }
docs: Creates a copy of the wrapped object, where the copy's type is a
  specified subclass of the wrapped object's class.
  
  Note: it does a "shallow" copy. Reference fields are not copied
  recursively.
  
  @param subclass A subclass of the wrapped object's class.
  @param <S> The subclass.
  @return A shallow copy.