Data layer supports streaming access with `.py` getitem

The data layer's .py getitem syntax now returns a lazy sequence if given a slice or list.  Also a few minor bugfixes.

```Python
In [1]: from blaze.data import *

In [2]: schema = '{transaction: int, from: int, to: int, date: string, value: real}'

In [3]: dd = CSV('user_edges.txt', schema=schema)

In [4]: dd.py[:, 'transaction']
Out[4]: <itertools.chain at 0xd1f5d0>
```