add subset_dshape

```Python
    >>> print(subset_dshape(0, 'var * {name: string, amount: int32}'))
    { name : string, amount : int32 }

    >>> print(subset_dshape('x', '{x: int, y: int}'))
    int32

    >>> print(subset_dshape((slice(0, 7, 2), 'amount'),
    ...                     'var * {name: string, amount: int32}'))
    3 * 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