Fixed `luDecomp' and `switchRows`

This fixes #3 and odd behavior of `switchRows`.

In the most recent release, `switchRows` doesn't work as described:

```haskell
ghci> switchRows 1 2 $ fromLists [[1,2,3],[4,5,6],[7,8,9]]
( 2 1 3 )
( 4 5 6 ) -- wrong!
( 7 8 9 )
```

This pull request fixes this behavior, and also added `switchCols` similar to `switchRows`.