Fix xy vs rowcol in astar

Everywhere in astar you access `Array2D` variables (`m_grid`, `m_closedset`, `g_score` and `f_score`) like this for example: 
```
if(m_closedset(nx,ny)) continue;
```
But it is initialized like this:
```
m_closedset(grid.row(),grid.col())
```

Rows should be in the Y axis and cols in X. This is not presently the case.

So, without this patch, your algorithm works only when searching from `x1,y1` to `x2,y2`, where those `x,y` are contains in a square the same size as MIN( `grid.row()` , `grid.col()` ). If not, the algorithm crashes with illegal memory access.

In this patch, I simply inverted `x,y` when assessing `Array2D` variables.