unsafe proc chaining -> first proc unsafe = all procs unsafe
I think it's good to make less easy to shoot yourself in the foot with "unsafe" proc, however unsafe proc chaining is needlessly verbose.

By using Nim move {call} optimization, I'd like to introduce that only the first proc call copies, all the others in the chain are unsafe by default. Consequently if the first proc is unsafe, the whole chain is unsafe. That avoids unsafeSlice.unsafeReshape.unsafeContiguous verbosity hell.

Implementation started for asContiguous in https://github.com/mratsim/Arraymancer/commit/1cfe13c0172dffccbe767bb4aa5a75e8bba1ed67