Nested discovery fixes

Sorry for the lack of tests.  Hopefully I'll get to this tomorrow.
that's true, i guess it just seems like anything empty should be `null` or `()`

```
In [4]: ds.discover([[], [], []])
Out[4]: dshape("3 * ()")
```