added zig-zag matrix implementation

Suggestion: you can use `.enumerate` here http://doc.rust-lang.org/master/std/iter/trait.Iterator.html#tymethod.enumerate

Something like:

```
for (i, &SortIndex{x, y}) in l.iter().enumerate() {
    ...
}
```