add subset_dshape

```Python
>>> ds = dshape('var * {name: string, amount: int32}')
>>> print(ds.subshape[0])
{ name : string, amount : int32 }

>>> print(ds.subshape[0:3])
3 * { name : string, amount : int32 }

>>> print(ds.subshape[0:7:2, 'amount'])
3 * int32

>>> print(ds.subshape[[1, 10, 15]])
3 * { name : string, amount : int32 }
```

Fixes https://github.com/ContinuumIO/datashape/issues/55

We need this logic somewhere.  Datashape seems like a good place. 

Possible controversial points:

1.  ~~Better name?~~
2.  I'm still depending on doctests