Generic typed data column
This is a type-aware representation of id -> value accessors.
E.g. our Vec has no clue about the data type. This one, if built on a Vec,
does, because we provide the type.
More, type may be something totally different from the standard four data types
that are hard-coded in Vecs and Chunks.
So that's why we have this interface to be an extension of Function<Long, T>.
Due to some hard-coded peculiar features, we need to hold a pointer to a Vec (that helps
us to materialize the data if needed).
Of course somewhere deep inside, the data are split into chunks; so we have here
a method chunkAt(i) that returns a TypedChunk<T>.
In general, the interface is similar, in its api, to Vecs.
But, unlike Vec, any value T can be a type of column data. Does not have to be Serializable,