This wrapper pushes a transform down into each chunk so that
transformations will happen on-the-fly. When wrapped and there
are Op instances to be applied, the atd call will supersede the
usual chunk-at retrieval with a "special" atd call.
Overhead added per element fetch per chunk is another virtual call
per Op per element (per Chunk). As has been noted (see e.g. RollupStats),
virtual calls are expensive, but the memory savings are substantial.
AutoML can freely transform columns without ramification.
Each wrapped Vec will track its own transformations, which makes it easy
when generating a POJO.
A TransformWrappedVec is actually a function of one or more Vec instances.
This class exists here so that Chunk and NewChunk don't need to become fully public
(since java has no friends). Other packages (not just core H2O) depend on this class!