BUG: don't allow an empty dataframe to have scalar assignment succeed (GH5744)

closes #5744
related #5720

I think this is the correct behavior

```
In [1]: df = pd.DataFrame(columns=['a', 'b', 'c c'])

In [2]: df['d'] = 3
ValueError: Cannot set a frame with no defined index and a value that cannot be converted to a Series

In [3]: df['c c']
Out[3]: Series([], name: c c, dtype: object)
```