Fixed Arrays.sort mutating the passed in list.

I tried to add a test case for this,
but it didn't seem to make a difference with `cabal test`.
It passed before and after the fix.

You can test it by

```
module Main where

import Arrays
import Eff
import Prelude
import Trace

x :: [Number]
x = [3,2,1]

main = do
    trace $ show x
    trace $ show (sort x)
    trace $ show x
```

Before the fix you'll get:

```
3 : 2 : 1 : []
3 : 2 : 1 : []
1 : 2 : 3 : []
```

After the fix you get the expected output:
```
3 : 2 : 1 : []
1 : 2 : 3 : []
3 : 2 : 1 : []
```