Reimplemented nt2::swap

- Independent of BLAS
- Allow for sub-expression swapping
- SIMD/scalar version available
so scalars are not terminals?
That's fairly weird naming