grids: wrap a raw pointer instead of a dynamic array, to make it easier to deal with foreign code/data.
added a (rather trivial) grid_demo