Add some corner cases to vlen support

Lists as values, multi-dimensional data and different-type
values are now supported for datasets with vlen datatype.