design discussion 2: N-D tensor specific things should in its own nimble package, on which other things (eg neural network functions etc) depend
/cc @mratsim 
N-D tensor specific things is much more limited in scope than, say, neural network stuff (which can grow in scope pretty much infinitely)
a better design would be to factor out the N-D tensor specifics into a separate nimble package (say, ndtensor).
Where to draw the line is debatable but for a lot of things this should be clear.

happy to discuss this in more details if discussion is welcome

## in scope for ndtensor:
* creating a ndtensor from a size or from a view over an existing buffer
* slicing, concatenation, iteration, reshaping
* any operation that preserves data and just changes the view
* map, filter
* basic stringification, eg `$`


## out of scope for ndtensor, ie move to other nimble package that depends on ndtensor
* resizing (note: different from reshaping), sacling, rotation and other image transforms
* image reading/writing
* anything computer vision or machine learning related
* convolution
* display
* linear algebra

