Use ndarray instead of plain ol' array access
Significantly speed up Map.expandTiles(). Closes #5.

This is done by specifying a reference tile to expand from, and only
processing the reference tile's adjacent tiles. Previously the entire
tileset was being processed every time a tile's owner was changed, which
was unperformant when more than a few tiles changed owners in one move.