Added Grid object

This patch changes the API.  Instead of the world being represented as
a Python dictionary, I've created a Grid object that extends the
Mapping ABC.  The implementation of the __getitem__ and __setitem__
methods allows for the passing of a tuple and the underlying
implementation of the grid is now a flat list.

    >>> g = Grid(10, 10)
    >>> g[2, 2] = 1
    >>> g[2, 2]
    1

This patch should set the stage for a more generic grid-simulation
framework.