Remove pointer arithmetic in StorageObj::AllocNDArray (#7890)
Remove pointer arithmetic in StorageObj::AllocNDArray (#7890)

The data pointers returned by AllocDataSpace are intended to be opaque
handlers, where previous implementation assumed pointer arithmetic is
valid on them.  Updated to instead use the byte_offset field to
indicate the offset in the allocated array.

Co-authored-by: Eric Lunderberg <f3d71fec639e50d1d43168c8b64cde4ef65ad572@octoml.ai>
dmlc/tvm,Laurawly/tvm-1,Laurawly/tvm-1,Laurawly/tvm-1,Laurawly/tvm-1,Laurawly/tvm-1,dmlc/tvm,Laurawly/tvm-1,dmlc/tvm,dmlc/tvm,dmlc/tvm,dmlc/tvm,dmlc/tvm,Laurawly/tvm-1,dmlc/tvm,Laurawly/tvm-1,Laurawly/tvm-1,Laurawly/tvm-1,dmlc/tvm