Fix bug in `initial` and `rest` function. Dont use `array.filter` function

Fixed bug when using range to implement `initial` and `rest`

I dont think we should use `array.filter` for performance issue
Let 's consider this example

```swift
let a = []
for item in 1..100 { a += item }
a.filter { println($0); return $0 % 10 == 0 }

# println function will be called 200 times
```
Not sure what the performance issue is here? If you accept an iterator you will have the println issue.