Reimplemented nt2::swap

- Independent of BLAS
- Allow for sub-expression swapping
- SIMD/scalar version available
I tried to make swap an elementwise returning void. It fails as the semantic try to get a reference to void deeper after the generator point. So I think we'll stick with this unless you have a proper idea that don't require ugly hacks