Allow 2D arrays in DataFrame.from_dict
From https://github.com/dask/dask/issues/5021,

suppose I have three ndarrays, different dtypes, and I'd like to place them in a DataFrame. However, one of more of the arrays is 2D.

Right now, I'd probably do something like

```python
In [18]: a = np.random.randn(10, 2)

In [19]: b = np.random.randn(10,)

In [20]: c = np.random.randint(0, 10, (10, 3))

In [21]: df1 = pd.DataFrame(a, columns=['a_1', 'a_2'])

In [22]: df2 = pd.DataFrame(b, columns=['b'])

In [23]: df3 = pd.DataFrame(c, columns=['c_1', 'c_2', 'c_3'])

In [24]: pd.concat([df1, df2, df2], axis=1)
Out[24]:
        a_1       a_2         b         b
0 -0.006595  0.255718 -1.085109 -1.085109
1  0.568423 -0.607054 -0.380154 -0.380154
2  0.589928  1.920212 -0.296742 -0.296742
...
```

Would we want to make that easier. Something like 

```python
pd.DataFrame.from_dict({"a": a, "b": b, "c": c})
```

* The length of all the input arrays must match.
* For 2-d values in the dict, the output column names will be `<key>_<I>`.

There are a few issues (non-string keys, etc.), but this may be worth doing.
