New Data layer

This reimplements `datadescriptors`. 

My experiences in #227 were that it was frustrating to change data descriptors because 

1.  They are tightly bound to the rest of the blaze array machinery
2.  They offer complex heterogeneous operations without a standard uniform interface
3.  There are a lot of them

I originally planned to standardize just a few within `datadescriptors`, but this caused a mismatch that led to lots of trouble.  It became clear that I was pulling on a very long thread.  My current solution is to reimplement `datadescriptors` in a new `data` directory. This directory holds six data descriptors

* Python
* DyND
* CSV
* JSON/JSON_Streaming
* HDF5
* SQL

Each of these can push their data to the others, either in a iterator/python user-facing way or in a chunked/dynd internal-efficient way.  Data in one format can be streamed to the other if the target supports the dshape.  That's really all that they do.  I'd like to build out `blaze.data` independently of the array machinery for a while and then perform a `datadescriptor` to `data` swap once we've settled on an interface.  I hope to get people using `blaze.data` on its own.

I recommend looking at https://github.com/mrocklin/blaze/blob/data/blaze/data/tests/test_interactions.py