Allow __getitem__ to handle slices

Return a new Grid object in the case where a user passes a tuple of
slices to __getitem__. The new Grid does not share state with the
original.
Merge pull request #1 from agentultra/grid-slice

Allow __getitem__ to handle slices