Datashape uniting within nested records

This extends datashape uniting (e.g. `int + float -> float`) within nested records.

```Python
In [1]: from datashape import discover

In [2]: discover([{'name': 'Alice', 'rec': {'a': 1, 'b': 1.0}, 'amount': 100}, 
                  {'name': 'Bob', 'rec': {'a': 1, 'b': 2}}])
Out[2]: dshape("2 * { amount : ?int64, name : string, rec : { a : int64, b : float64 } }")
```