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.