Reimplemented nt2::swap

- Independent of BLAS
- Allow for sub-expression swapping
- SIMD/scalar version available
I missed is_container_terminal. So I moved it around and used it.