discover([[], [], []]) -> var * string

Is this dumb?  string is in some sense our base type for discover
ds.dict[name] -> ds.dict(name, null)

More robust to missing keys in dictionaries
rename dshape to data

These things aren't datashapes
Merge pull request #99 from mrocklin/nested-discovery-fixes

Nested discovery fixes